eclass: improve cargo.eclass to better handle pre-release versions (fixes bug 630428)
authorDirkjan Ochtman <djc@gentoo.org>
Sat, 9 Sep 2017 13:26:59 +0000 (15:26 +0200)
committerDirkjan Ochtman <djc@gentoo.org>
Sat, 9 Sep 2017 13:26:59 +0000 (15:26 +0200)
eclass/cargo.eclass

index b08aa9e28aae6617b06c255aca63af33fb00eb1d..f805deba70c3edf6d390155228415c4322e43934 100644 (file)
@@ -31,9 +31,14 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo"
 cargo_crate_uris() {
        local crate
        for crate in "$@"; do
-               local name version url
+               local name version url pretag
                name="${crate%-*}"
                version="${crate##*-}"
+               pretag="[a-zA-Z]+"
+               if [[ $version =~ $pretag ]]; then
+                       version="${name##*-}-${version}"
+                       name="${name%-*}"
+               fi
                url="https://crates.io/api/v1/crates/${name}/${version}/download -> ${crate}.crate"
                echo "${url}"
        done