aboutsummaryrefslogtreecommitdiff
path: root/lib/util.bash
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2022-12-04 11:27:44 +0100
committerPatrick Spek <p.spek@tyil.nl>2022-12-04 11:27:44 +0100
commitf4ece68ecf8cfc855e54f2d5935ed2a2b8b0c4af (patch)
tree9b043bcd1c8fc8390af14a82edebee9dfc7cc3c5 /lib/util.bash
parent3fdeadf1f19f08995d610d0dc4cf7fb2893bd8f1 (diff)
Add file_rhash utility
Diffstat (limited to 'lib/util.bash')
-rw-r--r--lib/util.bash10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/util.bash b/lib/util.bash
index 6ad69e1..604e3e5 100644
--- a/lib/util.bash
+++ b/lib/util.bash
@@ -130,6 +130,16 @@ join_args() {
printf "%s" "$*"
}
+# Recursively hash files in a directory, and hashing the output of all those
+# hashes again. This results in a single hash representing the state of files
+# in a directory. It can be used to check whether contents changed after
+# templating files in a given directory.
+file_rhash() {
+ find "$1" -type f -exec sha1sum {} \; \
+ | sha1sum \
+ | awk '{ print $1 }'
+}
+
file_template()
{
local file="$BASHTARD_ETCDIR/playbooks.d/$BASHTARD_PLAYBOOK/share/$1" ; shift