1 |
commit: 5716d60c4cedaf6c13757ee4742f74b92c8ded06 |
2 |
Author: stefson <herrtimson <AT> yahoo <DOT> de> |
3 |
AuthorDate: Wed Mar 4 15:17:45 2020 +0000 |
4 |
Commit: Mikhail Pukhlikov <cynede <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Mar 5 06:17:12 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/proj/rust.git/commit/?id=5716d60c |
7 |
|
8 |
cargo eclass: backport patch to use regex for name/version extraction |
9 |
|
10 |
taken from https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2835a612827749228ca89fbd982df2bb4f072742 |
11 |
|
12 |
original bug: https://bugs.gentoo.org/705044 |
13 |
|
14 |
Signed-off-by: Steffen Kuhn <nielson2 <AT> yandex.com> |
15 |
Signed-off-by: Mikhail Pukhlikov <cynede <AT> gentoo.org> |
16 |
|
17 |
eclass/cargo.eclass | 13 +++++-------- |
18 |
1 file changed, 5 insertions(+), 8 deletions(-) |
19 |
|
20 |
diff --git a/eclass/cargo.eclass b/eclass/cargo.eclass |
21 |
index 4e874f0..eacad3e 100644 |
22 |
--- a/eclass/cargo.eclass |
23 |
+++ b/eclass/cargo.eclass |
24 |
@@ -36,17 +36,14 @@ ECARGO_VENDOR="${ECARGO_HOME}/gentoo" |
25 |
# @DESCRIPTION: |
26 |
# Generates the URIs to put in SRC_URI to help fetch dependencies. |
27 |
cargo_crate_uris() { |
28 |
+ readonly regex='^(.*)-([0-9]+\.[0-9]+\.[0-9]+.*)$' |
29 |
local crate |
30 |
for crate in "$@"; do |
31 |
- local name version url pretag |
32 |
- name="${crate%-*}" |
33 |
- version="${crate##*-}" |
34 |
- pretag="[a-zA-Z]+" |
35 |
- if [[ $version =~ $pretag ]]; then |
36 |
- version="${name##*-}-${version}" |
37 |
- name="${name%-*}" |
38 |
- fi |
39 |
if [[ "${CARGO_FETCH_CRATES}" == "not" ]]; then |
40 |
+ local name version url |
41 |
+ [[ $crate =~ $regex ]] || die "Could not parse name and version from crate: $crate" |
42 |
+ name="${BASH_REMATCH[1]}" |
43 |
+ version="${BASH_REMATCH[2]}" |
44 |
url="https://crates.io/api/v1/crates/${name}/${version}/download -> ${crate}.crate" |
45 |
else |
46 |
url="" |