summaryrefslogtreecommitdiff
path: root/sys/src/cmd/python/Tools/modulator/varsubst.py
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2021-06-14 00:00:37 +0000
committerOri Bernstein <ori@eigenstate.org>2021-06-14 00:00:37 +0000
commita73a964e51247ed169d322c725a3a18859f109a3 (patch)
tree3f752d117274d444bda44e85609aeac1acf313f3 /sys/src/cmd/python/Tools/modulator/varsubst.py
parente64efe273fcb921a61bf27d33b230c4e64fcd425 (diff)
python, hg: tow outside the environment.
they've served us well, and can ride off into the sunset.
Diffstat (limited to 'sys/src/cmd/python/Tools/modulator/varsubst.py')
-rw-r--r--sys/src/cmd/python/Tools/modulator/varsubst.py56
1 files changed, 0 insertions, 56 deletions
diff --git a/sys/src/cmd/python/Tools/modulator/varsubst.py b/sys/src/cmd/python/Tools/modulator/varsubst.py
deleted file mode 100644
index 3b3395065..000000000
--- a/sys/src/cmd/python/Tools/modulator/varsubst.py
+++ /dev/null
@@ -1,56 +0,0 @@
-#
-# Variable substitution. Variables are $delimited$
-#
-import re
-
-error = 'varsubst.error'
-
-class Varsubst:
- def __init__(self, dict):
- self.dict = dict
- self.prog = re.compile('\$([a-zA-Z0-9_]*)\$')
- self.do_useindent = 0
-
- def useindent(self, onoff):
- self.do_useindent = onoff
-
- def subst(self, s):
- rv = ''
- while 1:
- m = self.prog.search(s)
- if not m:
- return rv + s
- rv = rv + s[:m.start()]
- s = s[m.end():]
- if m.end() - m.start() == 2:
- # Escaped dollar
- rv = rv + '$'
- s = s[2:]
- continue
- name = m.group(1)
- if not self.dict.has_key(name):
- raise error, 'No such variable: '+name
- value = self.dict[name]
- if self.do_useindent and '\n' in value:
- value = self._modindent(value, rv)
- rv = rv + value
-
- def _modindent(self, value, old):
- lastnl = old.rfind('\n', 0) + 1
- lastnl = len(old) - lastnl
- sub = '\n' + (' '*lastnl)
- return re.sub('\n', sub, value)
-
-def _test():
- import sys
- import os
-
- sys.stderr.write('-- Copying stdin to stdout with environment map --\n')
- c = Varsubst(os.environ)
- c.useindent(1)
- d = sys.stdin.read()
- sys.stdout.write(c.subst(d))
- sys.exit(1)
-
-if __name__ == '__main__':
- _test()