Files
dotfiles/script/install
2024-03-03 21:07:05 +00:00

49 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -eo pipefail
# --------------------------------------------------------------------
# Script to run all install scripts contained in install.d
#
# Prevent running as root and check sudo access
if [[ $EUID -eq 0 ]]; then
echo "Failed: Running as sudo. Please run as user"
exit 1
fi
sudo -v
dir=$(dirname "$0")
install_dir="$dir/install.d"
if [[ -z "$LOG_TARGET" ]]; then
timestamp=$(date +%Y-%m-%dT%H:%M:%S)
uuid=$(
uuidgen 2> /dev/null \
|| cat /proc/sys/kernel/random/uuid 2> /dev/null \
|| echo $RANDOM
)
log_dir="$dir/logs"
mkdir -p "$log_dir"
log_target=${LOG_TARGET:-"$log_dir/$uuid.log"}
elif
log_target="$LOG_TARGET"
fi
install() {
echo "Running \"$(basename "$0")\" at \"$(date)\""
echo "Running as \"$(whoami)\" on \"$(hostname)\""
for script in $install_dir/*.sh; do
script_name=$(basename $script)
printf "\n\n<<< $script_name:\n"
source $script
printf "\n\n>>> $script_name\n"
unset script_name
done
}
echo "install: Logging to \"$log_target\""
install 2>&1 | tee "$log_target"
unset uuid dir install_dir log_dir log_target