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>
This commit is contained in:
Johannes Löthberg 2014-07-02 17:04:13 +02:00 committed by Allan McRae
parent 0e18cefe38
commit 80eca94c8e
2 changed files with 10 additions and 4 deletions

View File

@ -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.

View File

@ -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