aboutsummaryrefslogtreecommitdiff
path: root/src/cpt-checksum
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpt-checksum')
-rwxr-xr-xsrc/cpt-checksum28
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"