diff options
Diffstat (limited to 'src/cpt-checksum')
-rwxr-xr-x | src/cpt-checksum | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/cpt-checksum b/src/cpt-checksum new file mode 100755 index 0000000..2d303d3 --- /dev/null +++ b/src/cpt-checksum @@ -0,0 +1,30 @@ +#!/bin/sh -ef +# Generate checksums + +# shellcheck disable=1091 +if command -v cpt-lib >/dev/null; then . cpt-lib; else . ./cpt-lib; fi + +case "$1" in + --help|-h) out "usage: ${0##*/} [pkg...]"; exit 1 ;; + --version|-v) version ;; + '') set -- "${PWD##*/}"; export CPT_PATH=${PWD%/*}:$CPT_PATH ;; +esac + +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") + + if [ -w "$repo_dir" ]; then + tee "$repo_dir/checksums" + else + log "$pkg" "Need permissions to generate checksums" + + user=$(cpt-stat "$repo_dir") as_root tee "$repo_dir/checksums" + fi + } + + log "$pkg" "Generated checksums" +done |