2025-10-05 03:04:53 +02:00
|
|
|
#!/bin/sh -e
|
|
|
|
|
|
|
|
# SPDX-FileCopyrightText: 2025 crueter
|
|
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
|
|
|
# shellcheck disable=SC1091
|
|
|
|
. tools/cpm/common.sh
|
|
|
|
|
|
|
|
RETURN=0
|
|
|
|
|
2025-10-20 03:43:15 +02:00
|
|
|
usage() {
|
|
|
|
cat << EOF
|
|
|
|
Usage: $0 [uf] [PACKAGE]...
|
|
|
|
Check the hash of a specific package or packages.
|
|
|
|
If a hash mismatch occurs, this script will print the corrected hash of the package.
|
|
|
|
|
|
|
|
Options:
|
|
|
|
-u, --update Correct the package's hash if it's a mismatch
|
|
|
|
|
|
|
|
-f, --force Update the package's hash anyways (implies -u)
|
|
|
|
|
|
|
|
Note that this procedure will usually take a long time
|
|
|
|
depending on the number and size of dependencies.
|
|
|
|
|
|
|
|
This project has defined the following as valid cpmfiles:
|
|
|
|
EOF
|
|
|
|
|
|
|
|
for file in $CPMFILES; do
|
|
|
|
echo "- $file"
|
|
|
|
done
|
|
|
|
|
|
|
|
exit $RETURN
|
|
|
|
}
|
|
|
|
|
|
|
|
while true; do
|
|
|
|
case "$1" in
|
|
|
|
(-uf|-f|--force) UPDATE=true; FORCE=true; shift; continue ;;
|
|
|
|
(-u|--update) UPDATE=true; shift; continue ;;
|
|
|
|
(-h) usage ;;
|
|
|
|
("$0") break ;;
|
|
|
|
("") break ;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
PACKAGE="$1"
|
|
|
|
|
|
|
|
shift
|
|
|
|
|
2025-10-05 03:04:53 +02:00
|
|
|
export PACKAGE
|
|
|
|
. tools/cpm/package.sh
|
|
|
|
|
|
|
|
if [ "$CI" != null ]; then
|
|
|
|
continue
|
|
|
|
fi
|
|
|
|
|
|
|
|
[ "$HASH_URL" != null ] && continue
|
|
|
|
[ "$HASH_SUFFIX" != null ] && continue
|
|
|
|
|
|
|
|
echo "-- Package $PACKAGE"
|
|
|
|
|
|
|
|
[ "$HASH" = null ] && echo "-- * Warning: no hash specified" && continue
|
|
|
|
|
|
|
|
export USE_TAG=true
|
|
|
|
ACTUAL=$(tools/cpm/url-hash.sh "$DOWNLOAD")
|
|
|
|
|
2025-10-20 03:43:15 +02:00
|
|
|
if [ "$ACTUAL" != "$HASH" ]; then
|
|
|
|
echo "-- * Expected $HASH"
|
|
|
|
echo "-- * Got $ACTUAL"
|
|
|
|
[ "$UPDATE" != "true" ] && RETURN=1
|
|
|
|
fi
|
2025-10-05 03:04:53 +02:00
|
|
|
|
2025-10-20 03:43:15 +02:00
|
|
|
if { [ "$UPDATE" = "true" ] && [ "$ACTUAL" != "$HASH" ]; } || [ "$FORCE" = "true" ]; then
|
2025-10-05 03:04:53 +02:00
|
|
|
NEW_JSON=$(echo "$JSON" | jq ".hash = \"$ACTUAL\"")
|
|
|
|
export NEW_JSON
|
|
|
|
|
|
|
|
tools/cpm/replace.sh
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
exit $RETURN
|