#!/usr/bin/env bash # # install.sh # # Installs dotfiles and packages for my setup # # Will first install yay, then all my used packages (read from bootstrap/packages.csv) # # Will symlink all my dotfiles into their correct places using autostow.sh bootstrap_dir="${BOOTSTRAP_DIRECTORY:-./_bootstrap}" main() { local cmd="" local ret=0 case "$1" in -v | --version) printf "Personal system bootstrap script.\n\n©Marty Oehme\n\nVersion: 0.1.1\n" ;; -h | --help) printf "Usage: install [-f|--force][-v|--version][-h|--help]\n\n-f Do not ask for any confirmations but force update and installation.\n" ;; -f | --force) install true ;; *) install false ;; esac shift $cmd "$@" ret=$((ret + $?)) exit $ret } check_consent() { echo "This will take a while, install many packages and link dotfiles all over the place. Proceed [y/N]?" read -r yes if [[ "$yes" != y* ]]; then echo "Exiting." exit fi } install() { unattended=$1 if ! "$unattended"; then check_consent fi echo "====================== BEGINNING INSTALLATION =============================" if ! "$unattended"; then export BOOTSTRAP_PACKAGES="bootstrap/packages.csv" "$bootstrap_dir"/install_packages.sh else export BOOTSTRAP_PACKAGES="bootstrap/packages.csv" "$bootstrap_dir"/install_packages.sh -f fi unset BOOTSTRAP_PACKAGES echo "=================== BEGINNING DOTFILE MANAGEMENT ==========================" "$bootstrap_dir"/autostow.sh -s echo "====================== INSTALLATION FINISHED ==============================" } main "$@"