summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Gregory <andrew.gregory.8@gmail.com>2018-01-13 11:50:00 -0500
committerAllan McRae <allan@archlinux.org>2018-01-19 12:02:11 +1000
commitd9eda13fc69eb0bfbbab6d7488e99e5c7b033d3a (patch)
tree681851b33b419c35171825f5eb5b5112cb4f8a43
parent170bb80a1f8a020595738c7febdb15c68574ce29 (diff)
downloadpacman-d9eda13fc69eb0bfbbab6d7488e99e5c7b033d3a.tar.gz
pacman-d9eda13fc69eb0bfbbab6d7488e99e5c7b033d3a.zip
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.in4
-rw-r--r--scripts/pacman-db-upgrade.sh.in21
-rw-r--r--scripts/pacman-key.sh.in2
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