diff --git a/scripts/generate_manifest.sh b/scripts/generate_manifest.sh index b14df8ac..3b2e65df 100755 --- a/scripts/generate_manifest.sh +++ b/scripts/generate_manifest.sh @@ -20,6 +20,7 @@ generate_line() { local model="$1" local file="$2" + [ ! -e "${GLUON_IMAGEDIR}/sysupgrade/$file" ] || echo "$model" "$GLUON_RELEASE" "$(scripts/sha256sum.sh "${GLUON_IMAGEDIR}/sysupgrade/$file")" "$file" [ ! -e "${GLUON_IMAGEDIR}/sysupgrade/$file" ] || echo "$model" "$GLUON_RELEASE" "$(scripts/sha512sum.sh "${GLUON_IMAGEDIR}/sysupgrade/$file")" "$file" } diff --git a/scripts/sha256sum.sh b/scripts/sha256sum.sh new file mode 100755 index 00000000..e4f6f3e5 --- /dev/null +++ b/scripts/sha256sum.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +check_command() { + which "$1" >/dev/null 2>&1 +} + +if check_command sha256sum; then + ret="$(sha256sum "$@")" +elif check_command shasum; then + ret="$(shasum -a 256 "$@")" +elif check_command cksum; then + ret="$(cksum -q -a sha256 "$@")" +else + echo "$0: no suitable sha256sum implementation was found" >&2 + exit 1 +fi + +[ "$?" -eq 0 ] || exit 1 + +echo "$ret" | awk '{ print $1 }'