summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnish Athalye <me@anishathalye.com>2016-08-02 10:15:27 -0700
committerAnish Athalye <me@anishathalye.com>2016-08-02 10:15:27 -0700
commita836261d02755e5cbdb28dcfd1ff0b89de27a0c3 (patch)
tree7ce20b15c5f1929f2736b14fabd457f1a7f9788d
parent0618bc70cc98c93cd2faa505585bdd093338f5be (diff)
Fix variable expansion in extended syntax
-rw-r--r--plugins/link.py5
-rw-r--r--test/tests/link-environment-variable-expansion-source-extended.bash20
2 files changed, 22 insertions, 3 deletions
diff --git a/plugins/link.py b/plugins/link.py
index d6bdf98..9e1dce0 100644
--- a/plugins/link.py
+++ b/plugins/link.py
@@ -19,7 +19,6 @@ class Link(dotbot.Plugin):
success = True
defaults = self._context.defaults().get('link', {})
for destination, source in links.items():
- source = os.path.expandvars(source)
destination = os.path.expandvars(destination)
relative = defaults.get('relative', False)
force = defaults.get('force', False)
@@ -31,9 +30,9 @@ class Link(dotbot.Plugin):
force = source.get('force', force)
relink = source.get('relink', relink)
create = source.get('create', create)
- path = source['path']
+ path = os.path.expandvars(source['path'])
else:
- path = source
+ path = os.path.expandvars(source)
if create:
success &= self._create(destination)
if force or relink:
diff --git a/test/tests/link-environment-variable-expansion-source-extended.bash b/test/tests/link-environment-variable-expansion-source-extended.bash
new file mode 100644
index 0000000..73f6b0c
--- /dev/null
+++ b/test/tests/link-environment-variable-expansion-source-extended.bash
@@ -0,0 +1,20 @@
+test_description='link expands environment variables in extended config syntax'
+. '../test-lib.bash'
+
+test_expect_success 'setup' '
+echo "grape" > ${DOTFILES}/h
+'
+
+test_expect_success 'run' '
+export APPLE="h" &&
+run_dotbot <<EOF
+- link:
+ ~/.i:
+ path: \$APPLE
+ relink: true
+EOF
+'
+
+test_expect_success 'test' '
+grep "grape" ~/.i
+'