Files
Ludarium-Public/deploy/verify-source-manifest.sh
Ludarium release export df869819ce
Public source validation / source (push) Successful in 2m16s
Publish Ludarium source
2026-09-03 02:08:58 +02:00

27 lines
671 B
Bash

#!/bin/sh
set -eu
if [ "$#" -lt 1 ]; then
echo "usage: $0 ROOT [ROOT ...]" >&2
exit 2
fi
manifest_file="$(mktemp)"
trap 'rm -f "$manifest_file"' EXIT INT TERM
root_index=0
file_count=0
for root in "$@"; do
if [ ! -d "$root" ]; then
echo "library root is unavailable: $root" >&2
exit 3
fi
root_index=$((root_index + 1))
count="$(find "$root" -type f -printf . | wc -c)"
file_count=$((file_count + count))
(cd "$root" && find . -type f -printf "${root_index}\t%P\t%s\t%T@\0") >> "$manifest_file"
done
digest="$(LC_ALL=C sort -z "$manifest_file" | sha256sum | cut -d ' ' -f 1)"
printf 'sha256=%s files=%s roots=%s\n' "$digest" "$file_count" "$#"