summaryrefslogtreecommitdiffhomepage
path: root/subr.ex
diff options
context:
space:
mode:
Diffstat (limited to 'subr.ex')
-rw-r--r--subr.ex/ex_init.subr13
1 files changed, 11 insertions, 2 deletions
diff --git a/subr.ex/ex_init.subr b/subr.ex/ex_init.subr
index fcabce07..5d1035ad 100644
--- a/subr.ex/ex_init.subr
+++ b/subr.ex/ex_init.subr
@@ -410,16 +410,25 @@ ex_init_prereqs() {
#
# ex_init_theme() - initialise theme
# @_rstatus: reference to out variable of status string on failure
+# @_hname: build hostname
# @_name_base: base name for theme file(s)
# @_theme: theme name
#
# Return: zero (0) on success, non-zero (>0) on failure
#
ex_init_theme() {
- local _eit_rstatus="${1#\$}" _eit_name_base="${2}" _eit_theme="${3}" \
+ local _eit_rstatus="${1#\$}" _eit_hname="${2}" _eit_name_base="${3}" _eit_theme="${4}" \
_eit_rc=0 _eit_theme_fname="";
- _eit_theme_fname="etc/${_eit_name_base}${_eit_theme:+.${_eit_theme}}.theme";
+ if [ "${_eit_theme:+1}" = 1 ]; then
+ _eit_theme_fname="etc/${_eit_name_base}.${_eit_theme}.theme";
+ else
+ _eit_theme_fname="etc/${_eit_name_base}.theme.host.${_eit_hname}";
+ if ! [ -e "${_eit_theme_fname}" ]; then
+ _eit_theme_fname="etc/${_eit_name_base}.theme";
+ fi;
+ fi;
+
if ! [ -e "${_eit_theme_fname}" ]; then
_eit_rc=1;
exp_setrstatus "${_eit_rstatus}" 'failed to source \`'"${_eit_theme_fname}"''\''.';