summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Löthberg <johannes@kyriasis.com>2014-07-02 17:04:13 +0200
committerAllan McRae <allan@archlinux.org>2014-08-03 18:46:31 +1000
commit80eca94c8eec7dfeda02eff437309c4e20931afd (patch)
tree8fed521025c8d286bed8bd07cc812657a81c5cd0
parent0e18cefe3857b35b90fa1bfb2c5edb7dd8ad2866 (diff)
makepkg: Respect XDG_CONFIG_HOME
Add support for following the XDG Base Directory Specification when reading the user-specific configuration file. If no $XDG_CONFIG_HOME/pacman/makepkg.conf file exists we fall back to sourcing $HOME/.makepkg.conf Signed-off-by: Johannes Löthberg <johannes@kyriasis.com> [Allan] Note XDG_CONFIG_HOME takes priority. Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--doc/makepkg.conf.5.txt5
-rw-r--r--scripts/makepkg.sh.in9
2 files changed, 10 insertions, 4 deletions
diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt
index b15f026c..af4df201 100644
--- a/doc/makepkg.conf.5.txt
+++ b/doc/makepkg.conf.5.txt
@@ -11,7 +11,7 @@ makepkg.conf - makepkg configuration file
Synopsis
--------
-{sysconfdir}/makepkg.conf, ~/.makepkg.conf
+{sysconfdir}/makepkg.conf, $XDG_CONFIG_HOME/pacman/makepkg.conf, ~/.makepkg.conf
Description
@@ -27,7 +27,8 @@ variables. Some of them are non-standard.
The system-wide configuration file is found in {sysconfdir}/makepkg.conf.
Individual options can be overridden (or added to) on a per-user basis in
-~/.makepkg.conf.
+$XDG_CONFIG_HOME/pacman/makepkg.conf or ~/.makepkg.conf, with the former
+taking priority.
The default file is fairly well commented, so it may be easiest to simply
follow directions given there for customization.
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 779ebcbf..d0c5a6b1 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -2789,8 +2789,13 @@ fi
# Source user-specific makepkg.conf overrides, but only if no override config
# file was specified
-if [[ $MAKEPKG_CONF = "$confdir/makepkg.conf" && -r ~/.makepkg.conf ]]; then
- source_safe ~/.makepkg.conf
+XDG_PACMAN_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/pacman"
+if [[ "$MAKEPKG_CONF" = "$confdir/makepkg.conf" ]]; then
+ if [[ -r "$XDG_PACMAN_DIR/makepkg.conf" ]]; then
+ source_safe "$XDG_PACMAN_DIR/makepkg.conf"
+ elif [[ -r "$HOME/.makepkg.conf" ]]; then
+ source_safe "$HOME/.makepkg.conf"
+ fi
fi
# set pacman command if not already defined