svn commit: r508234 - in head/Mk: Scripts Uses
Tobias Kortkamp
tobik at FreeBSD.org
Tue Aug 6 08:12:40 UTC 2019
Author: tobik
Date: Tue Aug 6 08:12:39 2019
New Revision: 508234
URL: https://svnweb.freebsd.org/changeset/ports/508234
Log:
Mk/Uses/cargo.mk: Add support for CARGO_USE_GITLAB/GL_TUPLE to cargo-crates
Modified:
head/Mk/Scripts/cargo-crates.awk
head/Mk/Uses/cargo.mk
Modified: head/Mk/Scripts/cargo-crates.awk
==============================================================================
--- head/Mk/Scripts/cargo-crates.awk Tue Aug 6 08:07:16 2019 (r508233)
+++ head/Mk/Scripts/cargo-crates.awk Tue Aug 6 08:12:39 2019 (r508234)
@@ -3,8 +3,14 @@
BEGIN {
gh_tuple_len = 0
+ gl_tuple_len = 0
crates_len = 0
package_name = "<unknown>"
+
+ gitlab_sites["https://gitlab.com"] = 1
+ gitlab_sites["https://gitlab.freedesktop.org"] = 1
+ gitlab_sites["https://gitlab.gnome.org"] = 1
+ gitlab_sites["https://gitlab.redox-os.org"] = 1
}
/^"checksum .* .* \(registry\+.*\)" = ".*"/ {
@@ -50,23 +56,41 @@ function split_url(s) {
url["port"] = url_host[2]
}
-!gh_tuple_seen[$0] && /^source = "git\+(https|http|git):\/\/github.com\/.*#.*"/ {
+!gh_tuple_seen[$0] && /^source = "git\+(https|http|git):\/\/.*\/.*#.*"/ {
gh_tuple_seen[$0] = 1
- split_url(substr($3, 1, length($3) - 1))
-
+ split_url(substr($3, 1 + length("\"git+"), length($3) - 1 - length("\"git+")))
+
split(url["path"], path, "/")
account = path[2]
project = path[3]
gsub("\.git$", "", project)
-
+
if (match(url["query"], "^tag=")) {
split(url["query"], tag_, "=")
tag = tag_[2]
} else {
tag = url["fragment"]
}
- gh_tuple[gh_tuple_len++] = sprintf(\
- "%s:%s:%s:%s", account, project, tag, package_name)
+
+ if (url["host"] == "github.com") {
+ gh_tuple[gh_tuple_len++] = sprintf(\
+ "%s:%s:%s:%s", account, project, tag, package_name)
+ } else {
+ repo_site = sprintf("%s://%s", url["scheme"], url["host"])
+ for (site in gitlab_sites) {
+ if (repo_site != site) {
+ continue
+ }
+ if (ENVIRON["GL_SITE"] == site) {
+ gl_tuple[gl_tuple_len++] = sprintf(\
+ "%s:%s:%s:%s", account, project, tag, package_name)
+ } else {
+ gl_tuple[gl_tuple_len++] = sprintf(\
+ "%s:%s:%s:%s:%s", site, account, project, tag, package_name)
+ }
+ break
+ }
+ }
}
function print_array(start, arr, arrlen) {
@@ -85,8 +109,15 @@ END {
printf "USE_GITHUB=\tnodefault\n"
}
print_array("GH_TUPLE=", gh_tuple, gh_tuple_len)
+ if (gl_tuple_len > 0 && ENVIRON["USE_GITLAB"] == "") {
+ printf "USE_GITLAB=\tnodefault\n"
+ }
+ print_array("GL_TUPLE=", gl_tuple, gl_tuple_len)
print_array("CARGO_CRATES=", crates, crates_len)
if (gh_tuple_len > 0) {
printf "CARGO_USE_GITHUB=\tyes\n"
+ }
+ if (gl_tuple_len > 0) {
+ printf "CARGO_USE_GITLAB=\tyes\n"
}
}
Modified: head/Mk/Uses/cargo.mk
==============================================================================
--- head/Mk/Uses/cargo.mk Tue Aug 6 08:07:16 2019 (r508233)
+++ head/Mk/Uses/cargo.mk Tue Aug 6 08:12:39 2019 (r508234)
@@ -289,7 +289,7 @@ cargo-crates: extract
--manifest-path ${CARGO_CARGOTOML} \
--verbose; \
fi
- @${SETENV} USE_GITHUB=${USE_GITHUB} \
+ @${SETENV} USE_GITHUB=${USE_GITHUB} USE_GITLAB=${USE_GITLAB} GL_SITE=${GL_SITE} \
${AWK} -f ${SCRIPTSDIR}/cargo-crates.awk ${CARGO_CARGOLOCK}
# cargo-crates-licenses will try to grab license information from
More information about the svn-ports-head
mailing list