ink-os/setup
2021-08-29 20:36:21 +09:30

253 lines
5.3 KiB
Bash
Executable File

#!/bin/sh
#-----------------------------------
# Name: setup
# Version: 1.0.0
# Author: Solomon Laing
# Description:
# Sets up system with my configs,
# programs, and more.
# Usage:
# setup yay -- runs the system setup from installing yay onwards
# setup yay only -- only runs the yay section of the sysetm setup
#-----------------------------------
working_dir=$(pwd)
# perform basic system check
./system-check
# install yay
function install_yay {
cd $working_dir
./install-yay
if [ $? -eq 1 ]; then
exit 1
fi
}
# install my dmenu
function install_dmenu {
cd $working_dir
./install-dmenu-inkletblot
if [ $? -eq 1 ]; then
exit 1
fi
}
# update the system
function update_system {
# check with the user they are happy to update, exit if not though.
echo "The system needs to be updated before this installation can happen. The upgrades will be applied without any user oversight which may be dangerous for out of date systems."
read -r -p "Are you sure you want to continue? [Y/n] " input
case $input in
[nN][oO] | [nN])
exit 0
;;
*)
# Make sure everything is up to date
echo "Making sure everything is up to date..."
yay -Syyu --noconfirm
;;
esac
}
# install all required dependencies/programs
function install_dependencies {
cd $working_dir
./install-dependencies
if [ $? -eq 1 ]; then
exit 1
fi
}
# install all default programs
function install_defaults {
cd $working_dir
./install-defaults
if [ $? -eq 1 ]; then
exit 1
fi
}
# install all misc programs
function install_misc {
cd $working_dir
./install-misc
if [ $? -eq 1 ]; then
exit 1
fi
}
# install my scripts
function install_scripts {
cd $working_dir
./install-scripts
if [ $? -eq 1 ]; then
exit 1
fi
}
function install_dmenu {
cd $working_dir
./install-dmenu-inkletblot
if [ $? -eq 1 ]; then
exit 1
fi
}
# install my config
function install_config {
cd $working_dir
./install-config
if [ $? -eq 1 ]; then
exit 1
fi
}
# attempt to configure system
function configure_system {
cd $working_dir
./configure-system
if [ $? -eq 1 ]; then
exit 1
fi
}
function help {
echo "Usage is:"
echo " setup <option> -- to start system setup from option"
echo " setup <option> only -- to only setup the specified option"
echo "Options (in order of execution):"
echo " yay : Install yay AUR helper"
echo " deps : Install the dependencies for my scripts and window manager"
echo " defaults : Install my chosen default programs"
echo " misc : Install my collection of misc - nice to have - programs"
echo " scripts : Install my scirpts"
echo " dmenu : Install my customised version of dmenu"
echo " dotfiles : Install my dotfiles to the system"
echo " configure : configure certain system files - BETA"
echo ""
echo "Note: it is expected that the initial run of this script lets each stage complete sucessfully."
}
if [ "$1" = "help" ]; then
help
exit 0
fi
git submodule init
git submodule update
case $1 in
"")
update_system
install_yay
install_dependencies
install_defaults
install_misc
install_scripts
install_dmenu
install_config
configure_system
;;
yay)
if [ "$2" = "only" ]; then
install_yay
else
install_yay
install_dependencies
install_defaults
install_misc
install_scripts
install_dmenu
install_config
configure_system
fi
;;
deps)
update_system
if [ "$2" = "only" ]; then
install_dependencies
else
install_dependencies
install_defaults
install_misc
install_scripts
install_dmenu
install_config
configure_system
fi
;;
defaults)
update_system
if [ "$2" = "only" ]; then
install_defaults
else
install_defaults
install_misc
install_scripts
install_dmenu
install_config
configure_system
fi
;;
misc)
update_system
if [ "$2" = "only" ]; then
install_misc
else
install_misc
install_scripts
install_dmenu
install_config
configure_system
fi
;;
scripts)
if [ "$2" = "only" ]; then
install_scripts
else
install_scripts
install_dmenu
install_config
configure_system
fi
;;
dmenu)
if [ "$2" = "only" ]; then
install_dmenu
else
install_dmenu
install_config
configure_system
fi
;;
dotfiles)
if [ "$2" = "only" ]; then
install_config
else
install_config
configure_system
fi
;;
configure)
if [ "$2" = "only" ]; then
configure_system
else
configure_system
fi
;;
*)
echo "Invalid input..."
help
exit 1
;;
esac
if [ $? -eq 1 ]; then
exit 1
fi
exit 0