aboutsummaryrefslogtreecommitdiff
path: root/Mk/Scripts/cargo-crates-git-fetch.awk
diff options
context:
space:
mode:
Diffstat (limited to 'Mk/Scripts/cargo-crates-git-fetch.awk')
-rw-r--r--Mk/Scripts/cargo-crates-git-fetch.awk20
1 files changed, 20 insertions, 0 deletions
diff --git a/Mk/Scripts/cargo-crates-git-fetch.awk b/Mk/Scripts/cargo-crates-git-fetch.awk
new file mode 100644
index 000000000000..241b6d3b72f2
--- /dev/null
+++ b/Mk/Scripts/cargo-crates-git-fetch.awk
@@ -0,0 +1,20 @@
+# MAINTAINER: rust@FreeBSD.org
+#
+# Return (index, site, filename, wrksrc, crates) 5-tuples from git URL specs in CARGO_CRATES
+
+END {
+ split(GIT_SOURCES, git_sources)
+ for (i = 1; i <= length(git_sources); i++) {
+ git_source = git_sources[i]
+ j = index(git_source, "@")
+ if (j == 0) {
+ warn("invalid source: %s", git_source)
+ } else {
+ crate_source = substr(git_source, j + 1)
+ crates = substr(git_source, 0, j - 1)
+ if (split_git_url(git_info, crate_source)) {
+ printf("%d %s %s %s %s\n", group++, git_info["site"], git_info["filename"], git_info["dir"], crates)
+ }
+ }
+ }
+}