From fd722330c85983a089e46d14d30fbe6c26967845 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Thu, 24 Jan 2019 19:16:09 +1000 Subject: [PATCH] Fix config ordering * First default instance if set * Then in order from ~/.arkmanager.cfg * Then in order from /etc/arkmanager/arkmanager.cfg * Then in order from ~/.config/arkmanager/instances/*.cfg * Then in order from /etc/arkmanager/config/*.cfg --- tools/arkmanager | 58 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 45 insertions(+), 13 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index 98232ef..4b2f8be 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -3044,26 +3044,58 @@ printStatus(){ getAllInstanceNames(){ declare -A instancenames - for varname in "${!configfile_@}"; do - instancename="${varname#configfile_}" - instancenames[${instancename}]="${instancename}" + if [ -n "${defaultinstance}" ]; then + instancenames[${defaultinstance}]="${defaultinstance}" + echo "${defaultinstance}" + fi + if [ -f "${HOME}/${arkstUserCfgFile}" ]; then + while read l <&3; do + v="${l%%=*}" + if [[ "${v}" = configfile_* ]]; then + if [ -n "${!v}" ]; then + instancename="${v#configfile_}" + if [ -z "${instancenames[${instancename}]}" ]; then + instancenames[${instancename}]="${instancename}" + echo "${instancename}" + fi + fi + fi + done 3<"${HOME}/${arkstUserCfgFile}" + fi + if [ -f "${arkstGlobalCfgFile}" ]; then + while read l <&3; do + v="${l%%=*}" + if [[ "${v}" = configfile_* ]]; then + if [ -n "${!v}" ]; then + instancename="${v#configfile_}" + if [ -z "${instancenames[${instancename}]}" ]; then + instancenames[${instancename}]="${instancename}" + echo "${instancename}" + fi + fi + fi + done 3<"${arkstGlobalCfgFile}" + fi + for f in ${HOME}/.config/arkmanager/instances/*.cfg; do + if [ -f "${f}" ]; then + instancename="${f##*/}" + instancename="${instancename%.cfg}" + if [ -z "${instancenames[${instancename}]}" ]; then + instancenames[${instancename}]="${instancename}" + echo "${instancename}" + fi + fi done for f in /etc/arkmanager/instances/*.cfg; do if [ -f "${f}" ]; then instancename="${f##*/}" instancename="${instancename%.cfg}" - instancenames[${instancename}]="${instancename}" + if [ -z "${instancenames[${instancename}]}" ]; then + instancenames[${instancename}]="${instancename}" + echo "${instancename}" + fi fi done - for f in ${HOME}/.config/arkmanager/instances/*.cfg; do - if [ -f "${f}" ]; then - instancename="${f##*/}" - instancename="${instancename%.cfg}" - instancenames[${instancename}]="${instancename}" - fi - done - - echo "${instancenames[@]}" } doListAllInstances(){