dotfiles/dot_bin/executable_bootstrap_pkgs.tmpl

106 lines
2.2 KiB
Cheetah
Raw Normal View History

#! /bin/bash
# Install all required packages for this user. It only needs to be run once
# when setting up the HOME directory.
# ASSUME
# - git repos referenced here are pulled/updated
# - makepkg is installed/configured
# - yay is installed/configured
# NOTE to run without a sudo prompt, call with a user that has pacman
# permissions in sudoers.
pkgsrc_dir="$1"
2021-06-12 00:55:48 -04:00
if [[ -z "${2+set}" ]]; then
install_root="$HOME"
else
install_root="$2"
fi
makepkg_tmp=/tmp/bootstrap-makepkg
2021-03-13 16:57:45 -05:00
mk_makepkg_dir() {
echo "Creating temporary makepkg build directory at $makepkg_tmp"
mkdir -p "$makepkg_tmp"
echo "Populated with packages from $pkgsrc_dir"
cp -r "$pkgsrc_dir"/* "$makepkg_tmp"
}
try_update() {
if ! yay -Syy; then
echo "Failed to update pacman cache as user $(whoami). Exiting."
2021-03-13 16:57:45 -05:00
return 1
fi
}
2021-03-13 16:57:45 -05:00
call_makepkg() {
cd "$makepkg_tmp/$1" || return 1
makepkg -s -r -i -f --noconfirm
2021-03-13 16:57:45 -05:00
}
run_install_scripts() {
2021-06-12 00:55:48 -04:00
"$install_root/.config/rofi-extras/install_deps"
"$install_root/.config/xmonad/install_deps"
}
run_yay() {
# notifications
2022-07-21 00:03:41 -04:00
pkgs=(dunst papirus-icon-theme)
# gtk
pkgs+=(zuki-themes)
# sleep enhancement
pkgs+=(redshift)
{{ if .features.seafile -}}
# seafile
pkgs+=(seafile-client)
{{- end }}
# elegant terminal
pkgs+=(rxvt-unicode urxvt-perls)
# shell
pkgs+=(zsh zsh-completions zsh-syntax-highlighting)
yay --needed --noconfirm --norebuild --removemake -S "${pkgs[@]}"
}
run_makepkg() {
## these are all packages that have some personal customizations and/or are
## not in the AUR
## TODO the clevo thingy requires a systemd file to turn on/off
{{ if .features.clevo -}}
call_makepkg "clevo-xsm-wmi-dkms"
{{- end }}
2022-07-21 00:03:41 -04:00
{{ if ne .features.conky_alias "none" -}}
call_makepkg "conky-lua"
2022-07-21 00:03:41 -04:00
{{- end }}
call_makepkg "xkb-hypermode"
}
2021-03-13 16:57:45 -05:00
rm_makepkg_dir() {
echo "Removing temporary makepkg build directory at $makepkg_tmp"
rm -r -f "$makepkg_tmp"
2021-03-13 16:57:45 -05:00
}
clean_up() {
rm_makepkg_dir
exit
}
2021-03-13 17:05:36 -05:00
trap 'clean_up' ERR
2021-03-13 16:57:45 -05:00
2021-06-12 01:01:40 -04:00
if [ "$#" -lt 1 ] || [ "$#" -gt 2 ]; then
2021-06-12 00:55:48 -04:00
echo "Usage: bootstrap_pkgs CUSTOM_PKGBUILD_SRC [INSTALL_ROOT]"
exit 1
fi
try_update
2021-06-12 00:55:48 -04:00
run_install_scripts
run_yay
2021-03-13 16:57:45 -05:00
mk_makepkg_dir
run_makepkg
2021-03-13 17:05:36 -05:00
rm_makepkg_dir