From f2a7f8ec9e50828f5319578da8e437e91670ac3e Mon Sep 17 00:00:00 2001 From: deadc0de6 Date: Wed, 27 Mar 2019 13:44:55 +0100 Subject: [PATCH] auto rename link_by_default to link_import_default for #110 --- README.md | 1 - config.yaml | 3 ++- dotdrop/config.py | 18 +++++++++++++++++- dotdrop/options.py | 4 ++-- tests-ng/inst-link-default.sh | 6 +++--- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 083e662..eab3449 100644 --- a/README.md +++ b/README.md @@ -153,7 +153,6 @@ config: dotpath: dotfiles ignoreempty: false keepdot: false - link_by_default: false longkey: false showdiff: false workdir: ~/.config/dotdrop diff --git a/config.yaml b/config.yaml index 99ad2b4..f201f6f 100644 --- a/config.yaml +++ b/config.yaml @@ -5,6 +5,7 @@ config: banner: true longkey: false keepdot: false - link_by_default: false + link_import_default: false + link_install_default: nolink dotfiles: profiles: diff --git a/dotdrop/config.py b/dotdrop/config.py index d92506c..d4157d4 100644 --- a/dotdrop/config.py +++ b/dotdrop/config.py @@ -31,11 +31,17 @@ class Cfg: key_keepdot = 'keepdot' key_ignoreempty = 'ignoreempty' key_showdiff = 'showdiff' - key_imp_link = 'link_by_default' + key_imp_link = 'link_import_default' key_inst_link = 'link_install_default' key_workdir = 'workdir' key_include_vars = 'import_variables' + # below entries will be automatically transformed + # to their new counterpart + key_deprecated = { + 'link_by_default': key_imp_link, + } + # actions keys key_actions = 'actions' key_actions_pre = 'pre' @@ -557,6 +563,7 @@ class Cfg: def _complete_settings(self): """set settings defaults if not present""" + self._deprecated() if self.key_dotpath not in self.lnk_settings: self.lnk_settings[self.key_dotpath] = self.default_dotpath if self.key_backup not in self.lnk_settings: @@ -580,6 +587,15 @@ class Cfg: if self.key_inst_link not in self.lnk_settings: self.lnk_settings[self.key_inst_link] = self.default_link_inst + def _deprecated(self): + """fix deprecated entries""" + for k, v in self.key_deprecated.items(): + if k in self.lnk_settings: + # replace + entry = self.lnk_settings[k] + self.lnk_settings[v] = entry + del self.lnk_settings[k] + def _save(self, content, path): """writes the config to file""" ret = False diff --git a/dotdrop/options.py b/dotdrop/options.py index d397d4c..b53b6af 100644 --- a/dotdrop/options.py +++ b/dotdrop/options.py @@ -63,7 +63,7 @@ Options: -t --temp Install to a temporary directory for review. -T --template Only template dotfiles. -D --showdiff Show a diff before overwriting. - -l --inv-link Invert the value of "link_by_default" when importing. + -l --inv-link Invert "link_import_default" when importing. -P --show-patch Provide a one-liner to manually patch template. -f --force Do not warn if exists. -k --key Treat as a dotfile key. @@ -177,7 +177,7 @@ class Options(AttrMonitor): self.dry = self.args['--dry'] self.safe = not self.args['--force'] self.link = LinkTypes.NOLINK - if self.link_by_default: + if self.link_import_default: self.link = LinkTypes.PARENT if self.args['--inv-link']: diff --git a/tests-ng/inst-link-default.sh b/tests-ng/inst-link-default.sh index 0546596..80a9cac 100755 --- a/tests-ng/inst-link-default.sh +++ b/tests-ng/inst-link-default.sh @@ -80,7 +80,7 @@ _EOF # install cd ${ddpath} | ${bin} install -f -c ${cfg} -p p1 -V -cat ${cfg} +#cat ${cfg} # ensure exists and is not link [ ! -d ${tmpd}/abc ] && echo "not a directory" && exit 1 @@ -109,7 +109,7 @@ _EOF # install cd ${ddpath} | ${bin} install -f -c ${cfg} -p p1 -V -cat ${cfg} +#cat ${cfg} # ensure exists and parent is a link [ ! -e ${tmpd}/abc ] && echo "not exist" && exit 1 @@ -138,7 +138,7 @@ _EOF # install cd ${ddpath} | ${bin} install -f -c ${cfg} -p p1 -V -cat ${cfg} +#cat ${cfg} # ensure exists and children are links tree ${tmpd}