92 lines
2 KiB
Text
92 lines
2 KiB
Text
|
#!/bin/bash
|
||
|
#
|
||
|
# Simple app bootstrapping script
|
||
|
|
||
|
#=== main function ============================================================
|
||
|
# NAME: main
|
||
|
# DESCRIPTION: Display usage information for this script.
|
||
|
# PARAMETERS: see usage function
|
||
|
#==============================================================================
|
||
|
main() {
|
||
|
local cmd=""
|
||
|
local ret=0
|
||
|
|
||
|
case "$1" in
|
||
|
-v | --version)
|
||
|
printf "Package bootstrap script.\n\n©Marty Oehme\n\nVersion: 0.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
|
||
|
}
|
||
|
|
||
|
install_yay() {
|
||
|
# check for existing yay installation
|
||
|
if type yay >/dev/null 2>&1; then
|
||
|
echo "Existing yay installation found ..........................................."
|
||
|
return
|
||
|
fi
|
||
|
|
||
|
# use tmp dir to make yay
|
||
|
target=$(mktemp -d)
|
||
|
git clone https://aur.archlinux.org/yay.git "$target"
|
||
|
cd "$target" || exit
|
||
|
makepkg -si
|
||
|
}
|
||
|
|
||
|
update_repos() {
|
||
|
unattended="$1"
|
||
|
if "$unattended"; then
|
||
|
yay -Sqyy --noconfirm
|
||
|
else
|
||
|
yay -Syy
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
install_packages() {
|
||
|
unattended="$1"
|
||
|
if "$unattended"; then
|
||
|
yay -Squ --noconfirm --needed - <packages.csv
|
||
|
else
|
||
|
yay -Su --needed - <packages.csv
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
check_consent() {
|
||
|
echo "This will take a while and install many packages. Proceed [y/N]?"
|
||
|
read -r yes
|
||
|
if [[ "$yes" != y* ]]; then
|
||
|
echo "Exiting."
|
||
|
exit
|
||
|
fi
|
||
|
|
||
|
}
|
||
|
|
||
|
install() {
|
||
|
unattended=$1
|
||
|
echo "Beginning boostrap ........................................................"
|
||
|
if ! "$unattended"; then
|
||
|
check_consent
|
||
|
fi
|
||
|
echo "Installing yay ............................................................"
|
||
|
install_yay
|
||
|
echo "Installing apps ..........................................................."
|
||
|
update_repos "$unattended"
|
||
|
install_packages "$unattended"
|
||
|
echo "Done ......................................................................"
|
||
|
}
|
||
|
|
||
|
main "$@"
|