From b592fc8448429c143ffdbcf9e862dc8990027982 Mon Sep 17 00:00:00 2001 From: deadc0de6 Date: Sun, 3 Mar 2019 13:55:21 +0100 Subject: [PATCH] fix dynamic variables in include for #93 --- dotdrop/config.py | 18 +++++++++--------- tests-ng/extvariables.sh | 3 +++ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/dotdrop/config.py b/dotdrop/config.py index 06980ed..603acfe 100644 --- a/dotdrop/config.py +++ b/dotdrop/config.py @@ -181,6 +181,15 @@ class Cfg: def _parse(self): """parse config file""" + # parse the settings + self.lnk_settings = self.content[self.key_settings] + self._complete_settings() + + # load external variables/dynvariables + if self.key_include_vars in self.lnk_settings: + paths = self.lnk_settings[self.key_include_vars] + self._load_ext_variables(paths) + # parse all actions if self.key_actions in self.content: if self.content[self.key_actions] is not None: @@ -226,10 +235,6 @@ class Cfg: # ensures it's an empty list v[self.key_profiles_dots] = [] - # parse the settings - self.lnk_settings = self.content[self.key_settings] - self._complete_settings() - # parse the dotfiles # and construct the dict of objects per dotfile key if not self.content[self.key_dotfiles]: @@ -367,11 +372,6 @@ class Cfg: self.lnk_settings[self.key_workdir] = \ self._abs_path(self.curworkdir) - # load external variables/dynvariables - if self.key_include_vars in self.lnk_settings: - paths = self.lnk_settings[self.key_include_vars] - self._load_ext_variables(paths) - return True def _load_ext_variables(self, paths): diff --git a/tests-ng/extvariables.sh b/tests-ng/extvariables.sh index db97e88..0787da8 100755 --- a/tests-ng/extvariables.sh +++ b/tests-ng/extvariables.sh @@ -93,6 +93,7 @@ variables: varx: "exttest" dynvariables: dvar1: "echo extdvar1" + evar1: "echo extevar1" _EOF # create the dotfile @@ -101,6 +102,7 @@ echo "dvar3: {{@@ dvar3 @@}}" >> ${tmps}/dotfiles/abc echo "var4: {{@@ var4 @@}}" >> ${tmps}/dotfiles/abc echo "dvar4: {{@@ dvar4 @@}}" >> ${tmps}/dotfiles/abc echo "varx: {{@@ varx @@}}" >> ${tmps}/dotfiles/abc +echo "evar1: {{@@ evar1 @@}}" >> ${tmps}/dotfiles/abc #cat ${tmps}/dotfiles/abc @@ -114,6 +116,7 @@ grep '^dvar3: extdvar1 dvar2 dvar3' ${tmpd}/abc >/dev/null grep '^var4: echo extvar1 var2 var3' ${tmpd}/abc >/dev/null grep '^dvar4: extvar1 var2 var3' ${tmpd}/abc >/dev/null grep '^varx: profvarx' ${tmpd}/abc >/dev/null +grep '^evar1: extevar1' ${tmpd}/abc >/dev/null rm -f ${tmpd}/abc