73 lines
1.9 KiB
Cheetah
73 lines
1.9 KiB
Cheetah
{{ if eq .chezmoi.os "linux" -}}
|
|
|
|
|
|
{{ if eq .chezmoi.osRelease.id "manjaro" -}}
|
|
{{- /* https://github.com/mriehl/dotfiles/blob/master/run_onchange_packages.sh.tmpl */ -}}
|
|
#!/usr/bin/env bash
|
|
|
|
LOCKFILE="/var/lib/pacman/db.lck"
|
|
|
|
pacmanForce_packages=( {{.packages.linux.manjaro.pacman_force | quoteList | join " " }})
|
|
pacman_packages=( {{.packages.linux.manjaro.pacman | quoteList | join " " }})
|
|
aur_packages=( {{.packages.linux.manjaro.aur | quoteList | join " " }})
|
|
|
|
installed_packages=($(pacman -Qq))
|
|
|
|
is_installed() {
|
|
[[ " ${installed_packages[*]} " =~ " $1 " ]]
|
|
}
|
|
|
|
to_install_pacmanForce=()
|
|
for package in "${pacmanForce_packages[@]}"; do
|
|
to_install_pacmanForce+=("$package")
|
|
done
|
|
|
|
# 等待鎖定檔案被移除
|
|
echo "等待 pacman 鎖定檔案被移除..."
|
|
while [ -e "$LOCKFILE" ]; do
|
|
sleep 1
|
|
done
|
|
|
|
if [[ ${#to_install_pacmanForce[@]} -gt 0 ]]; then
|
|
echo " - Installing missing packages via pacman: ${to_install_pacmanForce[@]}"
|
|
sudo pacman -S --needed --noconfirm "${to_install_pacmanForce[@]}"
|
|
fi
|
|
|
|
# 等待鎖定檔案被移除
|
|
echo "等待 pacman 鎖定檔案被移除..."
|
|
while [ -e "$LOCKFILE" ]; do
|
|
sleep 1
|
|
done
|
|
|
|
to_install_pacman=()
|
|
for package in "${pacman_packages[@]}"; do
|
|
if ! is_installed "$package"; then
|
|
to_install_pacman+=("$package")
|
|
fi
|
|
done
|
|
|
|
if [[ ${#to_install_pacman[@]} -gt 0 ]]; then
|
|
echo " - Installing missing packages via pacman: ${to_install_pacman[@]}"
|
|
sudo pacman -S --needed --noconfirm "${to_install_pacman[@]}"
|
|
fi
|
|
|
|
if ! is_installed "yay"; then
|
|
echo " - Installing yay"
|
|
sudo pacman -S --needed --noconfirm yay
|
|
fi
|
|
|
|
to_install_aur=()
|
|
for package in "${aur_packages[@]}"; do
|
|
if ! is_installed "$package"; then
|
|
to_install_aur+=("$package")
|
|
fi
|
|
done
|
|
|
|
if [[ ${#to_install_aur[@]} -gt 0 ]]; then
|
|
echo " - Installing missing AUR packages via yay: ${to_install_aur[@]}"
|
|
yay -S --noconfirm "${to_install_aur[@]}"
|
|
fi
|
|
{{ end -}}
|
|
|
|
|
|
{{ end -}} |