hledger/tools/checkembeddedfiles

22 lines
615 B
Bash
Executable File

#!/usr/bin/env bash
# Check that all files embedded with file-embed are declared in extra-source-files
set -e
rg="rg --sort=path"
$rg --version >/dev/null
echo "Checking embedded file declarations:"
# shellcheck disable=SC2016
mapfile -t embeddedfiles < <($rg -I '^ +\$\(embedFileRelative "([^"]+)"' -or '$1')
status=0
for f in "${embeddedfiles[@]}"; do
if output=$($rg -l "$f" -- */package.yaml); then
printf '%-40s\tdeclared in %s\n' "$f" "$output"
else
printf '%-40s\tUNDECLARED\n' "$f"
status=1
fi;
done
if [[ $status != 0 ]]; then echo FAIL; else echo ok; fi
exit $status