projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '14640-api-wb-activejob-upgrade'
[arvados.git]
/
crunch_scripts
/
crunchutil
/
subst.py
diff --git
a/crunch_scripts/crunchutil/subst.py
b/crunch_scripts/crunchutil/subst.py
index b7336fa3322775c3b2b22f0bbf1905a48ab5de28..53def97f9648872e69634b29d701944f3cf59639 100644
(file)
--- a/
crunch_scripts/crunchutil/subst.py
+++ b/
crunch_scripts/crunchutil/subst.py
@@
-1,7
+1,14
@@
-import os
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+
import glob
import glob
+import os
+import re
import stat
import stat
+BACKSLASH_ESCAPE_RE = re.compile(r'\\(.)')
+
class SubstitutionError(Exception):
pass
class SubstitutionError(Exception):
pass
@@
-41,7
+48,7
@@
def sub_file(v):
if st and stat.S_ISREG(st.st_mode):
return path
else:
if st and stat.S_ISREG(st.st_mode):
return path
else:
- raise SubstitutionError("$(file {}) is not access
a
ble or is not a regular file".format(path))
+ raise SubstitutionError("$(file {}) is not access
i
ble or is not a regular file".format(path))
def sub_dir(v):
d = os.path.dirname(v)
def sub_dir(v):
d = os.path.dirname(v)
@@
-52,7
+59,7
@@
def sub_dir(v):
if st and stat.S_ISDIR(st.st_mode):
return path
else:
if st and stat.S_ISDIR(st.st_mode):
return path
else:
- raise SubstitutionError("$(dir {}) is not access
a
ble or is not a directory".format(path))
+ raise SubstitutionError("$(dir {}) is not access
i
ble or is not a directory".format(path))
def sub_basename(v):
return os.path.splitext(os.path.basename(v))[0]
def sub_basename(v):
return os.path.splitext(os.path.basename(v))[0]
@@
-60,7
+67,7
@@
def sub_basename(v):
def sub_glob(v):
l = glob.glob(v)
if len(l) == 0:
def sub_glob(v):
l = glob.glob(v)
if len(l) == 0:
- raise SubstitutionError("$(glob {}) no match fo
nu
d".format(v))
+ raise SubstitutionError("$(glob {}) no match fo
un
d".format(v))
else:
return l[0]
else:
return l[0]
@@
-73,7
+80,7
@@
def do_substitution(p, c, subs=default_subs):
while True:
m = search(c)
if m is None:
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
v = do_substitution(p, c[m[0]+2 : m[1]])
var = True