diff options
| author | Thomas Vanbesien <tvanbesi@proton.me> | 2026-06-01 19:49:10 +0200 |
|---|---|---|
| committer | Thomas Vanbesien <tvanbesi@proton.me> | 2026-06-01 19:49:10 +0200 |
| commit | 060d7b6455eb9001ba16b0807849c3851b0fbe02 (patch) | |
| tree | 8f04183f9f7514ac43370d15caed35156e000509 /.local | |
| parent | f6b48b1be68a5100823cfe7fc81fb789cb0cce79 (diff) | |
| download | dotfiles-060d7b6455eb9001ba16b0807849c3851b0fbe02.tar.gz dotfiles-060d7b6455eb9001ba16b0807849c3851b0fbe02.zip | |
fix(dotfiles): sync don't use sudo with yay
Diffstat (limited to '.local')
| -rwxr-xr-x | .local/bin/dotfiles | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/.local/bin/dotfiles b/.local/bin/dotfiles index 2e31e57..4a512b6 100755 --- a/.local/bin/dotfiles +++ b/.local/bin/dotfiles @@ -20,24 +20,31 @@ clipboard_hint() { # packages → nameref to an array containing a list of packages to sync # sync_flag → additional flags to pass to cmd sync_packages() { - local cmd="${1:?cmd argument missing}" + case "${1:?cmd argument missing}" in + pacman | yay) cmd=("$1") ;; + *) + echo "usage: sync_packages pacman|yay …" + exit 1 + ;; + esac local -n packages="${2:?packages argument missing}" shift 2 local sync_args=("$@") readarray -t packages_to_install < <( comm -13 \ - <(sort <("$cmd" --query --quiet)) \ + <(sort <("${cmd[@]}" --query --quiet)) \ <(sort <(printf '%s\n' "${packages[@]}")) ) readarray -t packages_to_upgrade < <( comm -12 \ - <(sort <("$cmd" --query --upgrades --quiet)) \ + <(sort <("${cmd[@]}" --query --upgrades --quiet)) \ <(sort <(printf '%s\n' "${packages[@]}")) ) local packages_to_sync=("${packages_to_install[@]}" "${packages_to_upgrade[@]}") if ((${#packages_to_sync[@]} == 0)); then return; fi if prompt_for_install "Out-of-sync packages: ${packages_to_sync[*]}"; then - sudo "$cmd" --sync "${sync_args[@]}" "${packages_to_sync[@]}" + if [[ ${cmd[0]} == pacman ]]; then cmd=(sudo pacman); fi + "${cmd[@]}" --sync "${sync_args[@]}" "${packages_to_sync[@]}" fi } @@ -127,7 +134,8 @@ sync_secret_service() { sync_proton_vpn() { # shellcheck disable=SC2034 local proton_vpn_packages=(proton-vpn-gtk-app proton-vpn-cli) - sync_packages pacman proton_vpn_packages --assume-installed gnome-keyring + # --needed because one of the two packages might already be synced + sync_packages pacman proton_vpn_packages --needed --assume-installed gnome-keyring } case ${1:-} in @@ -164,7 +172,7 @@ sync) ) sync_packages pacman deps # shellcheck disable=SC2034 - declare aur_deps=(pass-secret-service-bin vim-language-server) + declare aur_deps=(vim-language-server) sync_packages yay aur_deps sync_secret_service sync_proton_vpn |
