1
0
Fork 0

Fall back to reading config from XDG_DATA_DIRS

If there is no configuration file in “$XDG_CONFIG_HOME/update-mirrors”,
try looking through directories specified in XDG_CONFIG_DIRS. If
XDG_CONFIG_DIRS is not specified, use “/etc/xdg”.

Now config files are searched for in this order:

- “$XDG_CONFIG_HOME/update-mirrors/config.sh”, or
  “$HOME/.config/update-mirrors/config.sh” if XDG_CONFIG_DIR is not
  defined.
- For each DIR in XDG_CONFIG_DIRS “$DIR/update-mirrors/config.sh” is
  tried, or “/etc/xdg/update-mirrors/config.sh” if XDG_CONFIG_DIRS is
  not defined.
This commit is contained in:
Tom Willemse 2016-06-12 15:05:13 +02:00
parent a5d3cbbe2c
commit 6093fddfff

View file

@ -36,9 +36,29 @@ function make-url ()
echo "${url}/?${countryparams}&${protocolparams}&${ipparams}&${statusparams}"
}
function load-global-config ()
{
local IFS=":"
for dir in $1; do
local cfgfile="${dir}${2}"
if [[ -x $cfgfile ]]; then
source $cfgfile
return
fi
done
}
# Load config file
cfgfile=${XDG_CONFIG_HOME:-"${HOME}/.config"}/update-mirrors/config.sh
[ -x $cfgfile ] && source $cfgfile
etcbases=${XDG_CONFIG_DIRS:-"/etc/xdg"}
cfgbase=${XDG_CONFIG_HOME:-"${HOME}/.config"}
cfgfile="/update-mirrors/config.sh"
if [[ -x $cfgfile ]]; then
source "${cfgbase}${cfgfile}"
else
load-global-config $etcbases $cfgfile
fi
# Check destination
if [[ ! -e "$dest" ]] && [[ ! -w "$(dirname "$dest")" ]]; then