#!/bin/sh -ef # Generate checksums parser_definition() { setup REST help:usage -- "usage: ${0##*/} [-s] [pkg...]" msg -- '' 'Options:' flag sha -s -- "Generate checksums using the depracated sha256 algorithm" global_options } 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 # 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" else log "$pkg" "Need permissions to generate checksums" user=$(_stat "$repo_dir") as_root tee "$repo_dir/checksums" fi } log "$pkg" "Generated checksums" done