From 9e6cfaee0d550f30b40b1de062438a6cf9f21883 Mon Sep 17 00:00:00 2001
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sat, 25 Feb 2017 00:35:21 +0100
Subject: [PATCH] scripts: generate SHA256 manifest lines in addition to SHA512

The current autoupdater will only respect the last line for a given model
name, so we can add SHA256 checksums as long as they occur before the
corresponding SHA512 line.
---
 scripts/generate_manifest.sh |  1 +
 scripts/sha256sum.sh         | 20 ++++++++++++++++++++
 2 files changed, 21 insertions(+)
 create mode 100755 scripts/sha256sum.sh

diff --git a/scripts/generate_manifest.sh b/scripts/generate_manifest.sh
index b14df8aca..3b2e65dfb 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 000000000..e4f6f3e5b
--- /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 }'
-- 
GitLab