aboutsummaryrefslogtreecommitdiff
path: root/repo/cpt-cargolock-urlgen
blob: 7d78a6afd6889dbb56592796afb6ea034d9823cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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