Merge branch 'master' into 3408-production-datamanager
[arvados.git] / crunch_scripts / crunchutil / subst.py
index 06ef6c1198ffad07d888040794a42dce08e8af16..fad9b060ee65ea574d6c8a3a1f04e528559a6277 100644 (file)
@@ -1,7 +1,10 @@
-import os
 import glob
+import os
+import re
 import stat
 
+BACKSLASH_ESCAPE_RE = re.compile(r'\\(.)')
+
 class SubstitutionError(Exception):
     pass
 
@@ -73,7 +76,7 @@ def do_substitution(p, c, subs=default_subs):
     while True:
         m = search(c)
         if m is None:
-            return c
+            return BACKSLASH_ESCAPE_RE.sub(r'\1', c)
 
         v = do_substitution(p, c[m[0]+2 : m[1]])
         var = True