aboutsummaryrefslogtreecommitdiff
path: root/kiss-cargolock-urlgen
diff options
context:
space:
mode:
authorCem Keylan <cem@ckyln.com>2020-05-15 21:03:44 +0300
committerCem Keylan <cem@ckyln.com>2020-05-15 21:03:44 +0300
commit7bfa97d6fa2452d0517c4f820e44033b5a50cd50 (patch)
tree0552a5e5a15335fa672bf181b8725f89d0b35bdf /kiss-cargolock-urlgen
downloadcpt-extra-20200515.tar.gz
initial commit20200515
Diffstat (limited to 'kiss-cargolock-urlgen')
-rwxr-xr-xkiss-cargolock-urlgen21
1 files changed, 21 insertions, 0 deletions
diff --git a/kiss-cargolock-urlgen b/kiss-cargolock-urlgen
new file mode 100755
index 0000000..7d78a6a
--- /dev/null
+++ b/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