#!/bin/bash # Uses `printfield`, `gls`, `filter`, `is-perl`, and `skiplines` from # chj-bin. # The resulting file contains all Perl files in the Git repo, even # files which are not in MANIFEST! set -euo pipefail IFS= perlfilespath=.perlfiles newsum=$(md5sum MANIFEST | printfield 1) oldsum=$(head -1 -- "$perlfilespath" || echo '') if [ "$newsum" = "$oldsum" ]; then # echo "unchanged $perlfilespath" >&2 true else tmp=$(mktemp -p "$(dirname -- "$perlfilespath")") { echo $newsum gls | filter is-perl } > "$tmp" mv -- "$tmp" "$perlfilespath" #echo "updated $perlfilespath" >&2 fi skiplines 1 < "$perlfilespath"