ENH split bootstrap scripts into make_dep, build, and runtime phases
This commit is contained in:
parent
bddb8ce06f
commit
8616891c1f
|
@ -0,0 +1,24 @@
|
||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
# Print list of make dependencies for this dotfiles configuration
|
||||||
|
|
||||||
|
conf_dir={{ .paths.config }}
|
||||||
|
|
||||||
|
pkgs=$(cat "$conf_dir/xmonad/make_pkgs")
|
||||||
|
pkgs+="\n"
|
||||||
|
pkgs+=$(cat "$conf_dir/rofi-extras/make_pkgs")
|
||||||
|
pkgs+="\n"
|
||||||
|
pkgs+=$(cat "$conf_dir/xman/make_pkgs")
|
||||||
|
pkgs+="\n"
|
||||||
|
|
||||||
|
{{- if ne .features.conky_alias "none" }}
|
||||||
|
pkgs+=$(cat "$conf_dir/conky/make_pkgs")
|
||||||
|
pkgs+="\n"
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .development.emacs }}
|
||||||
|
pkgs+=$(cat "$conf_dir/emacs/make_pkgs")
|
||||||
|
pkgs+="\n"
|
||||||
|
{{- end}}
|
||||||
|
|
||||||
|
echo -e "$pkgs" | sort | uniq
|
|
@ -1,98 +0,0 @@
|
||||||
#! /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
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
#! /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
|
||||||
|
|
||||||
|
conf_dir={{ .paths.config }}
|
||||||
|
|
||||||
|
list_rofi_pkgs() {
|
||||||
|
args=(--autorandr --bitwarden --devices --bluetooth)
|
||||||
|
{{ if .features.vpn -}}
|
||||||
|
args+=(--expressvpn)
|
||||||
|
{{- end }}
|
||||||
|
"$conf_dir/rofi-extras/scripts/runtime_pkgs" "${args[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 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 exa)
|
||||||
|
|
||||||
|
# xmonad
|
||||||
|
mapfile -t xmonad < <("$conf_dir/xmonad/scripts/runtime_pkgs")
|
||||||
|
pkgs=("${pkgs[@]}" "${xmonad[@]}")
|
||||||
|
|
||||||
|
# rofi extras
|
||||||
|
mapfile -t rofix < <(list_rofi_pkgs)
|
||||||
|
pkgs=("${pkgs[@]}" "${rofix[@]}")
|
||||||
|
|
||||||
|
# xman
|
||||||
|
pkgs+=(xcape)
|
||||||
|
|
||||||
|
{{- if .development.emacs }}
|
||||||
|
mapfile -t emacs < <("$conf_dir/xmonad/scripts/runtime_pkgs")
|
||||||
|
pkgs=("${pkgs[@]}" "${emacs[@]}")
|
||||||
|
{{- end }}
|
Loading…
Reference in New Issue