aboutsummaryrefslogtreecommitdiff
path: root/repo/kiss-cargolock-urlgen
diff options
context:
space:
mode:
Diffstat (limited to 'repo/kiss-cargolock-urlgen')
-rwxr-xr-xrepo/kiss-cargolock-urlgen21
1 files changed, 21 insertions, 0 deletions
diff --git a/repo/kiss-cargolock-urlgen b/repo/kiss-cargolock-urlgen
new file mode 100755
index 0000000..7d78a6a
--- /dev/null
+++ b/repo/kiss-cargolock-urlgen
@@ -0,0 +1,21 @@
+#!/bin/sh
+# Convert the given Cargo.lock file to sources
+
+case "$1" in
+ -) set -- /dev/stdin ;;
+ ''|--help|-h) printf '\033[1;33m-> \033[m%s\n' "usage: ${0##*/} <Cargo.lock file>" "" \
+ "'-' can be used to read from stdin." ; exit 0
+esac
+
+# Word splitting is intentional
+# shellcheck disable=2046
+set -- $(sed '/name =/b;/version =/b;d' "$1" |
+ sed 's/version = /#/g;s/name = //;s/"//g' |
+ tr '\n' ' ' | sed 's/ #/#/g')
+
+# We convert the name-version seperator to '#' and back to '-'
+# to avoid issues that may arise from version names with a '-'
+for crate in "$@" ; do
+ printf 'https://static.crates.io/crates/%s/%s.crate vendor\n' \
+ "${crate%#*}" "$crate" | sed 's/#/-/g'
+done