From 1caf786f49234862c351f2e11b6d58800bae0fb0 Mon Sep 17 00:00:00 2001 From: Sebastian Wiesner Date: Mon, 9 Dec 2013 15:29:14 +0100 Subject: [PATCH] Don't use sudo if the backend implicitly calls it Also don't rely on alias expansion to handle the pacman, because aliases are not expanded in sudo. --- modules/pacman/init.zsh | 33 +++++++++++++++++++-------------- modules/pacman/yaourt.zsh | 7 +++++-- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/modules/pacman/init.zsh b/modules/pacman/init.zsh index bbbdcfb5..fc7f12e5 100644 --- a/modules/pacman/init.zsh +++ b/modules/pacman/init.zsh @@ -20,6 +20,10 @@ fi # Get the Pacman frontend. zstyle -s ':prezto:module:pacman' frontend '_pacman_frontend' +_pacman_sudo='sudo ' +if zstyle -t ':prezto:module:pacman' no_sudo; then + _pacman_sudo='' +fi if (( $+commands[$_pacman_frontend] )); then alias pacman="$_pacman_frontend" @@ -34,49 +38,50 @@ fi # # Pacman. -alias pac='pacman' +alias pac= "${_pacman_frontend}" # Installs packages from repositories. -alias paci='sudo pacman --sync' +alias paci="${_pacman_sudo}${_pacman_frontend} --sync" # Installs packages from files. -alias pacI='sudo pacman --upgrade' +alias pacI="${_pacman_sudo}${_pacman_frontend} --upgrade" # Removes packages and unneeded dependencies. -alias pacx='sudo pacman --remove' +alias pacx="${_pacman_sudo}${_pacman_frontend} --remove" # Removes packages, their configuration, and unneeded dependencies. -alias pacX='sudo pacman --remove --nosave --recursive' +alias pacX="${_pacman_sudo}${_pacman_frontend} --remove --nosave --recursive" # Displays information about a package from the repositories. -alias pacq='pacman --sync --info' +alias pacq="${_pacman_frontend} --sync --info" # Displays information about a package from the local database. -alias pacQ='pacman --query --info' +alias pacQ="${_pacman_frontend} --query --info" # Searches for packages in the repositories. -alias pacs='pacman --sync --search' +alias pacs="${_pacman_frontend} --sync --search" # Searches for packages in the local database. -alias pacS='pacman --query --search' +alias pacS="${_pacman_frontend} --query --search" # Lists orphan packages. -alias pacman-list-orphans='sudo pacman --query --deps --unrequired' +alias pacman-list-orphans="${_pacman_sudo}${_pacman_frontend} --query --deps --unrequired" # Removes orphan packages. -alias pacman-remove-orphans='sudo pacman --remove --recursive $(pacman --quiet --query --deps --unrequired)' +alias pacman-remove-orphans="${_pacman_sudo}${_pacman_frontend} --remove --recursive \$(${_pacman_frontend} --quiet --query --deps --unrequired)" # Synchronizes the local package and Arch Build System databases against the # repositories. if (( $+commands[abs] )); then - alias pacu='sudo pacman --sync --refresh && sudo abs' + alias pacu="${_pacman_sudo}${_pacman_frontend} --sync --refresh && ${_pacman_sudo}abs" else - alias pacu='sudo pacman --sync --refresh' + alias pacu="${_pacman_sudo}${_pacman_frontend} --sync --refresh" fi # Synchronizes the local package database against the repositories then # upgrades outdated packages. -alias pacU='sudo pacman --sync --refresh --sysupgrade' +alias pacU="${_pacman_sudo}${_pacman_frontend} --sync --refresh --sysupgrade" unset _pacman_frontend +unset _pacman_sudo diff --git a/modules/pacman/yaourt.zsh b/modules/pacman/yaourt.zsh index fb2a8dc2..e3f40f4a 100644 --- a/modules/pacman/yaourt.zsh +++ b/modules/pacman/yaourt.zsh @@ -5,15 +5,18 @@ # Sorin Ionescu # +# Yaourt does not need sudo +_pacman_sudo='' + # # Aliases # # Disable color. if ! zstyle -t ':prezto:module:pacman:yaourt' color; then - alias pacman='pacman --nocolor' + alias pacman='yaourt --nocolor' fi # Manages .pac* files. -alias pacc='pacman -C' +alias pacc='yaourt -C'