mirror of
https://github.com/alvierahman90/otfmacros.git
synced 2024-12-15 12:01:59 +00:00
Proof of idea (I guess)
This commit is contained in:
commit
b4ed47bab2
58
pymacro
Executable file
58
pymacro
Executable file
@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import re
|
||||
|
||||
SEPARATORS = [' ', '\n', 's']
|
||||
|
||||
|
||||
def get_args():
|
||||
""" Get command line arguments """
|
||||
|
||||
import argparse
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("-m", "--macros", default=["macros"], action="append")
|
||||
parser.add_argument("input")
|
||||
parser.add_argument("output")
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def main(args):
|
||||
""" Entry point for script """
|
||||
macros = []
|
||||
for macro_file in args.macros:
|
||||
with open(macro_file) as file:
|
||||
macros += [x.split('\t') for x in file.read().split('\n')]
|
||||
|
||||
for index, macro in enumerate(macros):
|
||||
if len(macro) != 2:
|
||||
macros.pop(index)
|
||||
continue
|
||||
macros[index] = tuple(macros[index])
|
||||
|
||||
macros.sort(key=lambda tup: len(tup[0]), reverse=True)
|
||||
|
||||
with open(args.input) as file:
|
||||
input = file.read()
|
||||
|
||||
for macro in macros:
|
||||
pattern, repl = macro
|
||||
print(macro)
|
||||
for separator in SEPARATORS:
|
||||
input = input.replace(pattern + separator, repl + separator)
|
||||
|
||||
output = input
|
||||
|
||||
with open(args.output, 'w+') as file:
|
||||
file.write(output)
|
||||
|
||||
print(output)
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
sys.exit(main(get_args()))
|
||||
except KeyboardInterrupt:
|
||||
sys.exit(0)
|
Loading…
Reference in New Issue
Block a user