1
0
mirror of https://github.com/TheLocehiliosan/yadm synced 2025-06-13 13:03:58 +00:00
TheLocehiliosan_yadm/contrib/bootstrap/bootstrap-in-dir
randomgeek78 3dc0240f5e
Allow interaction in bootstrap scripts
This fix enhances the bootstrap process by allowing interaction in scripts. If the bootstrap script has a `read...` command, it now works just fine.
2021-10-28 09:46:23 -07:00

26 lines
773 B
Bash
Executable File

#!/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
# Allow interaction in bootstrap scripts
while IFS= read -r bootstrap <&3 ; do
if [[ -x "$bootstrap" && ! "$bootstrap" =~ "##" && ! "$bootstrap" =~ "~$" ]]; then
if ! "$bootstrap"; then
echo "Error: bootstrap '$bootstrap' failed" >&2
exit 1
fi
fi
done 3< <(find -L "$BOOTSTRAP_D" -type f | sort)