Add simple package bootstrap script
This commit is contained in:
parent
ae1a477301
commit
82d2e3079a
2 changed files with 211 additions and 0 deletions
91
.config/bootstrap/install
Executable file
91
.config/bootstrap/install
Executable file
|
|
@ -0,0 +1,91 @@
|
|||
#!/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 "$@"
|
||||
Loading…
Add table
Add a link
Reference in a new issue