diff --git a/dotbot/plugins/clean.py b/dotbot/plugins/clean.py index 7e6cba1..22c975e 100644 --- a/dotbot/plugins/clean.py +++ b/dotbot/plugins/clean.py @@ -34,11 +34,11 @@ class Clean(dotbot.Plugin): Cleans all the broken symbolic links in target if they point to a subdirectory of the base directory or if forced to clean. ''' - if not os.path.isdir(os.path.expanduser(target)): + if not os.path.isdir(os.path.expandvars(os.path.expanduser(target))): self._log.debug('Ignoring nonexistent directory %s' % target) return True - for item in os.listdir(os.path.expanduser(target)): - path = os.path.join(os.path.expanduser(target), item) + for item in os.listdir(os.path.expandvars(os.path.expanduser(target))): + path = os.path.join(os.path.expandvars(os.path.expanduser(target)), item) if not os.path.exists(path) and os.path.islink(path): points_at = os.path.join(os.path.dirname(path), os.readlink(path)) if self._in_directory(path, self._context.base_directory()) or force: diff --git a/test/tests/clean-environment-variable-expansion.bash b/test/tests/clean-environment-variable-expansion.bash new file mode 100644 index 0000000..fedab45 --- /dev/null +++ b/test/tests/clean-environment-variable-expansion.bash @@ -0,0 +1,16 @@ +test_description='clean expands environment variables' +. '../test-lib.bash' + +test_expect_success 'setup' ' +ln -s ${DOTFILES}/f ~/.f +' + +test_expect_success 'run' ' +run_dotbot <