99 lines
2.0 KiB
Bash
99 lines
2.0 KiB
Bash
#! /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"
|
|
|
|
if [[ -z "${2+set}" ]]; then
|
|
install_root="$HOME"
|
|
else
|
|
install_root="$2"
|
|
fi
|
|
|
|
makepkg_tmp=/tmp/bootstrap-makepkg
|
|
|
|
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."
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
call_makepkg() {
|
|
cd "$makepkg_tmp/$1" || return 1
|
|
makepkg -s -r -i -f --noconfirm
|
|
}
|
|
|
|
run_install_scripts() {
|
|
"$install_root/.config/rofi-extras/install_deps"
|
|
"$install_root/.config/xmonad/install_deps"
|
|
}
|
|
|
|
run_yay() {
|
|
# notifications
|
|
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
|
|
call_makepkg "xkb-hypermode"
|
|
}
|
|
|
|
rm_makepkg_dir() {
|
|
echo "Removing temporary makepkg build directory at $makepkg_tmp"
|
|
rm -r -f "$makepkg_tmp"
|
|
}
|
|
|
|
clean_up() {
|
|
rm_makepkg_dir
|
|
exit
|
|
}
|
|
|
|
trap 'clean_up' ERR
|
|
|
|
if [ "$#" -lt 1 ] || [ "$#" -gt 2 ]; then
|
|
echo "Usage: bootstrap_pkgs CUSTOM_PKGBUILD_SRC [INSTALL_ROOT]"
|
|
exit 1
|
|
fi
|
|
|
|
try_update
|
|
|
|
run_install_scripts
|
|
|
|
run_yay
|
|
|
|
mk_makepkg_dir
|
|
run_makepkg
|
|
rm_makepkg_dir
|