#!/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##*/} " "" \ "'-' 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