1
0
mirror of https://github.com/TheLocehiliosan/yadm synced 2025-12-05 14:12:19 +00:00
TheLocehiliosan_yadm/contrib/bootstrap/bootstrap-in-dir
Daniel Nolan 6168d02e94
Make bootstrap-in-dir work in different SHELL
* I love yadm, but not all of my machines use bash.
* Update bootstrap-in-dir script to work with SHELL other than bash
2025-11-09 09:26:26 -05:00

37 lines
950 B
Bash
Executable File

#!/bin/sh
# 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 -e
# Directory to look for bootstrap executables in
# Works in sh, bash, and zsh
if [ -n "${BASH_SOURCE:-}" ]; then
BOOTSTRAP_D="${BASH_SOURCE[0]}.d"
else
BOOTSTRAP_D="${0}.d"
fi
if [ ! -d "$BOOTSTRAP_D" ]; then
echo "Error: bootstrap directory '$BOOTSTRAP_D' not found" >&2
exit 1
fi
# Find and execute bootstrap files
find -L "$BOOTSTRAP_D" -type f | sort | while IFS= read -r bootstrap; do
# Skip non-executable files, editor backups (~), and templates (##)
if [ -x "$bootstrap" ]; then
case "$bootstrap" in
*\##*|*~) continue ;;
esac
if ! "$bootstrap"; then
echo "Error: bootstrap '$bootstrap' failed" >&2
exit 1
fi
fi
done