diff options
Diffstat (limited to 'src/cpt-checksum')
-rwxr-xr-x | src/cpt-checksum | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/src/cpt-checksum b/src/cpt-checksum index 5c6de52..488ab87 100755 --- a/src/cpt-checksum +++ b/src/cpt-checksum @@ -1,22 +1,32 @@ #!/bin/sh -ef # Generate checksums -if [ -f ./cpt-lib ]; then . ./cpt-lib; else . cpt-lib; fi +parser_definition() { + setup REST help:usage -- "usage: ${0##*/} [-s] [pkg...]" + msg -- '' 'Options:' + flag sha -s -- "Generate checksums using the depracated sha256 algorithm" + global_options +} -case "$1" in - --help|-h) out "usage: ${0##*/} [pkg...]"; exit 0 ;; - --version|-v) version ;; - '') set -- "${PWD##*/}"; export CPT_PATH=${PWD%/*}:$CPT_PATH ;; -esac +if [ -f ./cpt-lib ]; then . ./cpt-lib; else . cpt-lib; fi +[ "$1" ] || { set -- "${PWD##*/}"; CPT_PATH=${PWD%/*}:$CPT_PATH ;} create_cache for pkg; do pkg_lint "$pkg" c; done for pkg; do pkg_sources "$pkg" c; done - for pkg; do - pkg_checksums "$pkg" | { - repo_dir=$(pkg_find "$pkg") + # Do not generate checksums if the 'sources' file is empty or it doesn't + # exist. + repo_dir=$(pkg_find "$pkg") + [ -s "$repo_dir/sources" ] || { + log "$pkg" "No 'sources' file, skipping checksums" + continue + } + + # $sha is defined by the parser. + # shellcheck disable=2154 + pkg_checksums "$pkg" "${sha:+sh256}" | { if [ -w "$repo_dir" ]; then tee "$repo_dir/checksums" |