# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0
PortGroup           github 1.0
PortGroup           cargo 1.0

github.setup        BurntSushi ripgrep 15.1.0
github.tarball_from archive
revision            0
categories          textproc
installs_libs       no
license             MIT
maintainers         {gmail.com:herby.gillot @herbygillot} \
                    openmaintainer

description         fast command line search tool
long_description    ripgrep is a command line search tool that combines the \
                    usability of The Silver Searcher (an ack clone) with the \
                    raw speed of GNU grep.

checksums-append    ${distname}${extract.suffix} \
                    rmd160  0fe97e06ec96e6fc607e26998d52ad59bd343991 \
                    sha256  046fa01a216793b8bd2750f9d68d4ad43986eb9c0d6122600f993906012972e8 \
                    size    600788

depends_build-append \
                    port:asciidoc \
                    port:docbook-xsl-nons

set ripgrep_bin     ${worksrcpath}/target/[cargo.rust_platform]/release/rg

post-build {
    # Generate shell completions
    foreach _shell {bash fish zsh} {
        system -W ${worksrcpath} \
            "${ripgrep_bin} --generate complete-${_shell} > rg.${_shell}"
    }

    # Generate man page
    system -W ${worksrcpath} "${ripgrep_bin} --generate man > rg.1"
}

destroot {
    # Install ripgrep
    xinstall -m 0755 ${ripgrep_bin} ${destroot}${prefix}/bin/
    ln -s rg ${destroot}${prefix}/bin/ripgrep

    # Install shell completions
    xinstall -d -m 0755 ${destroot}${prefix}/share/bash-completion/completions
    xinstall -m 0644 ${worksrcpath}/rg.bash \
        ${destroot}${prefix}/share/bash-completion/completions/rg

    xinstall -d -m 0755 ${destroot}${prefix}/share/fish/vendor_completions.d
    xinstall -m 0644 ${worksrcpath}/rg.fish \
        ${destroot}${prefix}/share/fish/vendor_completions.d/

    xinstall -d -m 0755 ${destroot}${prefix}/share/zsh/site-functions
    xinstall -m 0644 ${worksrcpath}/rg.zsh \
        ${destroot}${prefix}/share/zsh/site-functions/_rg

    # Install man page
    xinstall -m 0644 ${worksrcpath}/rg.1 ${destroot}${prefix}/share/man/man1/
}

variant pcre description {Build with pcre2} {
    build.args-append       --features 'pcre2'
    depends_lib-append      port:pcre2
}

cargo.crates \
    aho-corasick                                                            1.1.3  8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916 \
    anyhow                                                                1.0.100  a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61 \
    arbitrary                                                               1.4.2  c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1 \
    bstr                                                                   1.12.0  234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4 \
    cc                                                                     1.2.41  ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7 \
    cfg-if                                                                  1.0.4  9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801 \
    crossbeam-channel                                                      0.5.15  82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2 \
    crossbeam-deque                                                         0.8.6  9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51 \
    crossbeam-epoch                                                        0.9.18  5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e \
    crossbeam-utils                                                        0.8.21  d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28 \
    derive_arbitrary                                                        1.4.2  1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a \
    encoding_rs                                                            0.8.35  75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3 \
    encoding_rs_io                                                          0.1.7  1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83 \
    find-msvc-tools                                                         0.1.4  52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127 \
    getrandom                                                               0.3.4  899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd \
    glob                                                                    0.3.3  0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280 \
    itoa                                                                   1.0.15  4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c \
    jobserver                                                              0.1.34  9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33 \
    lexopt                                                                  0.3.1  9fa0e2a1fcbe2f6be6c42e342259976206b383122fc152e872795338b5a3f3a7 \
    libc                                                                  0.2.177  2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976 \
    log                                                                    0.4.28  34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432 \
    memchr                                                                  2.7.6  f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273 \
    memmap2                                                                 0.9.9  744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490 \
    pcre2                                                                  0.2.11  9e970b0fcce0c7ee6ef662744ff711f21ccd6f11b7cf03cd187a80e89797fc67 \
    pcre2-sys                                                              0.2.10  18b9073c1a2549bd409bf4a32c94d903bb1a09bf845bc306ae148897fa0760a4 \
    pkg-config                                                             0.3.32  7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c \
    proc-macro2                                                           1.0.101  89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de \
    quote                                                                  1.0.41  ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1 \
    r-efi                                                                   5.3.0  69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f \
    regex                                                                  1.12.2  843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4 \
    regex-automata                                                         0.4.13  5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c \
    regex-syntax                                                            0.8.8  7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58 \
    ryu                                                                    1.0.20  28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f \
    same-file                                                               1.0.6  93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502 \
    serde                                                                 1.0.228  9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e \
    serde_core                                                            1.0.228  41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad \
    serde_derive                                                          1.0.228  d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79 \
    serde_json                                                            1.0.145  402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c \
    shlex                                                                   1.3.0  0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 \
    syn                                                                   2.0.107  2a26dbd934e5451d21ef060c018dae56fc073894c5a7896f882928a76e6d081b \
    termcolor                                                               1.4.1  06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755 \
    textwrap                                                               0.16.2  c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057 \
    tikv-jemalloc-sys     0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7  cd8aa5b2ab86a2cefa406d889139c162cbb230092f7d1d7cbc1716405d852a3b \
    tikv-jemallocator                                                       0.6.1  0359b4327f954e0567e69fb191cf1436617748813819c94b8cd4a431422d053a \
    unicode-ident                                                          1.0.20  462eeb75aeb73aea900253ce739c8e18a67423fadf006037cd3ff27e82748a06 \
    walkdir                                                                 2.5.0  29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b \
    wasip2                                                       1.0.1+wasi-0.2.4  0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7 \
    winapi-util                                                            0.1.11  c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22 \
    windows-link                                                            0.2.1  f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5 \
    windows-sys                                                            0.61.2  ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc \
    wit-bindgen                                                            0.46.0  f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59
