X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0bd1c28bed9a0756c61037947d5a9dccd5066f00..4d56f9b913fcf41fbf89bf5016463b5353fa3a9f:/crunch_scripts/crunchutil/subst.py?ds=sidebyside diff --git a/crunch_scripts/crunchutil/subst.py b/crunch_scripts/crunchutil/subst.py deleted file mode 100644 index b3526883fc..0000000000 --- a/crunch_scripts/crunchutil/subst.py +++ /dev/null @@ -1,75 +0,0 @@ -import os -import glob - -def search(c): - DEFAULT = 0 - DOLLAR = 1 - - i = 0 - state = DEFAULT - start = None - depth = 0 - while i < len(c): - if c[i] == '\\': - i += 1 - elif state == DEFAULT: - if c[i] == '$': - state = DOLLAR - if depth == 0: - start = i - elif c[i] == ')': - if depth == 1: - return [start, i] - if depth > 0: - depth -= 1 - elif state == DOLLAR: - if c[i] == '(': - depth += 1 - state = DEFAULT - i += 1 - if depth != 0: - raise Exception("Substitution error, mismatched parentheses {}".format(c)) - return None - -def sub_file(v): - return os.path.join(os.environ['TASK_KEEPMOUNT'], v) - -def sub_dir(v): - d = os.path.dirname(v) - if d == '': - d = v - return os.path.join(os.environ['TASK_KEEPMOUNT'], d) - -def sub_basename(v): - return os.path.splitext(os.path.basename(v))[0] - -def sub_glob(v): - l = glob.glob(v) - if len(l) == 0: - raise Exception("$(glob): No match on '%s'" % v) - else: - return l[0] - -default_subs = {"file ": sub_file, - "dir ": sub_dir, - "basename ": sub_basename, - "glob ": sub_glob} - -def do_substitution(p, c, subs=default_subs): - while True: - #print("c is", c) - m = search(c) - if m is not None: - v = do_substitution(p, c[m[0]+2 : m[1]]) - var = True - for sub in subs: - if v.startswith(sub): - r = subs[sub](v[len(sub):]) - var = False - break - if var: - r = p[v] - - c = c[:m[0]] + r + c[m[1]+1:] - else: - return c