diff options
author | Andrew Gregory <andrew.gregory.8@gmail.com> | 2018-01-13 11:50:00 -0500 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2018-01-19 12:02:11 +1000 |
commit | d9eda13fc69eb0bfbbab6d7488e99e5c7b033d3a (patch) | |
tree | 681851b33b419c35171825f5eb5b5112cb4f8a43 | |
parent | 170bb80a1f8a020595738c7febdb15c68574ce29 (diff) | |
download | pacman-d9eda13fc69eb0bfbbab6d7488e99e5c7b033d3a.tar.xz |
use pacman-conf in scripts
Because parsing pacman.conf is so difficult that even we can't do it
right.
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r-- | scripts/completion/zsh_completion.in | 4 | ||||
-rw-r--r-- | scripts/pacman-db-upgrade.sh.in | 21 | ||||
-rw-r--r-- | scripts/pacman-key.sh.in | 2 |
3 files changed, 5 insertions, 22 deletions
diff --git a/scripts/completion/zsh_completion.in b/scripts/completion/zsh_completion.in index f74fa297..77449955 100644 --- a/scripts/completion/zsh_completion.in +++ b/scripts/completion/zsh_completion.in @@ -316,7 +316,7 @@ _pacman_completions_all_packages() { typeset -U packages ${seq} _wanted packages expl "packages" compadd ${sep[@]} - "${(@)packages}" - repositories=(${(o)${${${(M)${(f)"$(<@sysconfdir@/pacman.conf)"}:#\[*}/\[/}/\]/}:#options}) + repositories=($(pacman-conf --repo-list)) typeset -U repositories _wanted repo_packages expl "repository/package" compadd -S "/" $repositories fi @@ -348,7 +348,7 @@ _pacman_all_packages() { # provides completions for repository names _pacman_completions_repositories() { local -a cmd repositories - repositories=(${(o)${${${(M)${(f)"$(<@sysconfdir@/pacman.conf)"}:#\[*}/\[/}/\]/}:#options}) + repositories=($(pacman-conf --repo-list)) # Uniq the array typeset -U repositories compadd "$@" -a repositories diff --git a/scripts/pacman-db-upgrade.sh.in b/scripts/pacman-db-upgrade.sh.in index a6ff3b25..0629cc1c 100644 --- a/scripts/pacman-db-upgrade.sh.in +++ b/scripts/pacman-db-upgrade.sh.in @@ -70,18 +70,6 @@ die_r() { die "$@" } -get_opt_from_config() { - local keyname="$1" conffile="$2" - local key value - - while IFS=$'= \t' read -r key value _; do - if [[ $key = $keyname ]]; then - echo "$value" - return - fi - done <"$conffile" -} - resolve_dir() { local d="$(cd "$1"; pwd -P)" [[ $d == */ ]] || d+=/ @@ -121,13 +109,8 @@ while true; do done conffile=${conffile:-@sysconfdir@/pacman.conf} -[[ -z $pacroot ]] && pacroot="$(get_opt_from_config "RootDir" "$conffile")" -[[ -z $dbroot ]] && dbroot="$(get_opt_from_config "DBPath" "$conffile")" - -[[ -z $dbroot && -n $pacroot ]] && dbroot="$pacroot/@localstatedir@/lib/pacman" - -[[ -z $pacroot ]] && pacroot="@rootdir@" -[[ -z $dbroot ]] && dbroot="@localstatedir@/lib/pacman/" +[[ -z $pacroot ]] && pacroot=$(pacman-conf --config="$conffile" rootdir) +[[ -z $dbroot ]] && dbroot=$(pacman-conf --config="$conffile" --rootdir="$pacroot" dbpath) m4_include(library/term_colors.sh) diff --git a/scripts/pacman-key.sh.in b/scripts/pacman-key.sh.in index 7b158da7..293a42de 100644 --- a/scripts/pacman-key.sh.in +++ b/scripts/pacman-key.sh.in @@ -580,7 +580,7 @@ fi # if PACMAN_KEYRING_DIR isn't assigned, try to get it from the config # file, falling back on a hard default -PACMAN_KEYRING_DIR=${PACMAN_KEYRING_DIR:-$(get_from "$CONFIG" "GPGDir" "@sysconfdir@/pacman.d/gnupg")} +PACMAN_KEYRING_DIR=${PACMAN_KEYRING_DIR:-$(pacman-conf --config="$CONFIG" gpgdir)} GPG_PACMAN=(gpg --homedir "${PACMAN_KEYRING_DIR}" --no-permission-warning) if [[ -n ${KEYSERVER} ]]; then |