55 lines
1.1 KiB
Bash
Executable File
55 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eo pipefail
|
|
|
|
TIME=${TIME:-`date`}
|
|
UUID=${UUID:-`uuidgen`}
|
|
HOST=${HOST:-`hostname`}
|
|
|
|
NAME=`basename "$0"`
|
|
REL_DIR=`dirname "$0"`
|
|
ABS_DIR=`readlink -f $REL_DIR/../` # Scripts are nested inside of /scripts
|
|
|
|
LOG_DIR="$ABS_DIR/logs"
|
|
mkdir -p $LOG_DIR
|
|
LOG_TARGET=${LOG_TARGET:-$LOG_DIR/$UUID.log}
|
|
|
|
|
|
main() {
|
|
echo "Running $NAME at $TIME"
|
|
echo "Running as $USER on $HOST"
|
|
|
|
# Prevent running as root
|
|
if [[ $EUID -eq 0 ]]; then
|
|
echo "Failed: Running as sudo. Please run as user"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Loading utils"
|
|
source $REL_DIR/_utils.sh
|
|
|
|
apt_update
|
|
|
|
echo "Installing jq..."
|
|
apt_install jq
|
|
|
|
echo "Installing apt dependencies..."
|
|
for dep in `jq -r ".apt_dependencies[]" $ABS_DIR/config.json`; do
|
|
apt_install $dep
|
|
done
|
|
|
|
figlet -c "bootstrapping..."
|
|
$ABS_DIR/scripts/bootstrap.sh
|
|
source $HOME/.profile
|
|
|
|
figlet -c "installing..."
|
|
export INSTALL_DIR="$REL_DIR/install"
|
|
for script in $INSTALL_DIR/*.sh; do
|
|
figlet -c `basename $script`
|
|
source $script
|
|
done
|
|
|
|
}
|
|
|
|
echo "main: Logging to $LOG_TARGET"
|
|
main 2>&1 |tee $LOG_TARGET
|