#!/bin/sh # install dots # require root if [ "$(whoami)" != "root" ]; then echo "Not running as root." exit 1 fi clear echo "What would you like to do?" echo "[a] Install everything." echo "[q] Quit." echo "[ip] Install all packages." echo "[iw] Install @world file (NOTE: This can be risky sometimes but a backup is created.)." echo "[id] Install portage config files." printf "> " read installaction # check valid options if [ "$installaction" != "ip" ] && [ "$installaction" != "iw" ] && [ "$installaction" != "id" ] && [ "$installaction" != "a" ] && [ "$installaction" != "q" ]; then echo "Invalid option, try again." sleep 1 $0 && exit fi curdir="$(pwd)" WARN() { echo "WARNING: You are about to install packages. Make sure your /etc/portage/make.conf is set up properly." echo "Do you want to edit it now? (y/n)" printf "> " read edit if [ "$edit" != "y" ] && [ "$edit" != "n" ]; then echo "Try again." WARN fi if [ "$edit" = "y" ]; then command -v nvim > /dev/null && EDITOR=nvim command -v vim > /dev/null && EDITOR=vim command -v vi > /dev/null && EDITOR=vi command -v $EDITOR > /dev/null && EDITOR=$EDITOR command -v nano > /dev/null && EDITOR=nano FINDEDITOR() { if [ "$EDITOR" = "" ]; then echo "Not able to find an editor on your system, please specify one." printf "> " read EDITOR command -v $EDITOR > /dev/null || FINDEDITOR fi } FINDEDITOR $EDITOR /etc/portage/make.conf fi } if [ "$installaction" = "ip" ]; then WARN cd src ./setup-pkgs.sh elif [ "$installaction" = "iw" ]; then WARN cd src ./setup-world.sh ./update-world.sh elif [ "$installaction" = "id" ]; then cd src ./setup.sh elif [ "$installaction" = "q" ]; then exit 0 elif [ "$installaction" = "a" ]; then WARN cd src ./setup.sh ./setup-world.sh ./update-world.sh ./setup-pkgs.sh fi cd $curdir