Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Aug 2019 08:12:39 +0000 (UTC)
From:      Tobias Kortkamp <tobik@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r508234 - in head/Mk: Scripts Uses
Message-ID:  <201908060812.x768CdoN019690@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201908060812.x768CdoN019690>