From 7d216d47e02e237bd3be72f00f40d38b69ac402f Mon Sep 17 00:00:00 2001 From: Erik Flodin Date: Fri, 1 Jan 2021 22:18:00 +0100 Subject: [PATCH] Add example bootstrap script to run files in bootstrap.d This script will, when installed as yadm's bootstrap script, run all executables in $YADM_DIR/bootstrap.d. --- contrib/bootstrap/bootstrap-in-dir | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 contrib/bootstrap/bootstrap-in-dir diff --git a/contrib/bootstrap/bootstrap-in-dir b/contrib/bootstrap/bootstrap-in-dir new file mode 100755 index 0000000..91b75f7 --- /dev/null +++ b/contrib/bootstrap/bootstrap-in-dir @@ -0,0 +1,24 @@ +#!/bin/bash + +# Save this file as ~/.config/yadm/bootstrap and make it executable. It will +# execute all executable files (excluding templates and editor backups) in the +# ~/.config/yadm/bootstrap.d directory when run. + +set -eu + +# Directory to look for bootstrap executables in +BOOTSTRAP_D="${BASH_SOURCE[0]}.d" + +if [[ ! -d "$BOOTSTRAP_D" ]]; then + echo "Error: bootstrap directory '$BOOTSTRAP_D' not found" >&2 + exit 1 +fi + +find "$BOOTSTRAP_D" -type f | sort | while IFS= read -r bootstrap; do + if [[ -x "$bootstrap" && ! "$bootstrap" =~ "##" && ! "$bootstrap" =~ "~$" ]]; then + if ! "$bootstrap"; then + echo "Error: bootstrap '$bootstrap' failed" >&2 + exit 1 + fi + fi +done