#!/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" export DOTFILES=$(dirname "$dir") 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"} else 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>>> $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