[pacman-contrib] [PATCH] Migrate scripts from manual parsing of pacman.conf, to use of pacman-conf

Eli Schwartz eschwartz at archlinux.org
Wed Feb 14 15:29:46 UTC 2018


pacman.conf cannot be properly parsed in bash, e.g. it fails to handle
`Include = ` directives, hence why pacman introduced a configuration
parsing tool in the first place.

Signed-off-by: Eli Schwartz <eschwartz at archlinux.org>
---
 src/checkupdates.sh.in | 2 +-
 src/paccache.sh.in     | 3 +--
 src/pacdiff.sh.in      | 4 +---
 3 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/checkupdates.sh.in b/src/checkupdates.sh.in
index 9f34dc1..1d01fda 100644
--- a/src/checkupdates.sh.in
+++ b/src/checkupdates.sh.in
@@ -46,7 +46,7 @@ fi
 
 trap 'rm -f $CHECKUPDATES_DB/db.lck' INT TERM EXIT
 
-DBPath="$(awk -F' *= *' '/^DBPath/ { print $2 }' @sysconfdir@/pacman.conf)"
+DBPath="$(pacman-conf DBPath)"
 if [[ -z "$DBPath" ]] || [[ ! -d "$DBPath" ]]; then
 	DBPath="@localstatedir@/lib/pacman/"
 fi
diff --git a/src/paccache.sh.in b/src/paccache.sh.in
index 143c6e3..25432d4 100644
--- a/src/paccache.sh.in
+++ b/src/paccache.sh.in
@@ -287,8 +287,7 @@ m4_include(../lib/term_colors.sh)
 
 # setting default cachedirs
 if [[ -z $cachedirs ]]; then
-	cachedir="$(get_cachedirs_from_config "@sysconfdir@/pacman.conf")"
-	cachedirs=("${cachedirs[@]:- at localstatedir@/cache/pacman/pkg}")
+	cachedirs=($(pacman-conf CacheDirs))
 fi
 
 # remaining args are a whitelist
diff --git a/src/pacdiff.sh.in b/src/pacdiff.sh.in
index ef385c2..866932d 100644
--- a/src/pacdiff.sh.in
+++ b/src/pacdiff.sh.in
@@ -130,12 +130,10 @@ case $(( USE_FIND + USE_LOCATE + USE_PACDB )) in
 esac
 
 if (( USE_PACDB )); then
-	if [[ ! -r @sysconfdir@/pacman.conf ]]; then
+	if ! DBPath="$(pacman-conf DBPath)"; then
 		error "unable to read @sysconfdir@/pacman.conf"
 		usage; exit 1
 	fi
-
-	eval $(awk '/DBPath/ {print $1$2$3}' @sysconfdir@/pacman.conf)
 	pac_db="${DBPath:- at localstatedir@/lib/pacman/}local"
 	if [[ ! -d "${pac_db}" ]]; then
 		error "unable to read pacman database %s". "${pac_db}"
-- 
2.16.1


More information about the pacman-contrib mailing list