Files
galaxy/scripts/tools/re_escape_output.py
T
2022-02-03 07:42:20 -05:00

37 lines
1.0 KiB
Python

#!/usr/bin/env python
"""
Escapes a file into a form suitable for use with tool tests using re_match or re_match_multiline (when -m/--multiline option is used)
usage: re_escape_output.py [options] input_file [output_file]
-m: Use Multiline Matching
"""
import optparse
import re
def __main__():
parser = optparse.OptionParser()
parser.add_option(
"-m", "--multiline", action="store_true", dest="multiline", default=False, help="Use Multiline Matching"
)
(options, args) = parser.parse_args()
input = open(args[0], "rb")
if len(args) > 1:
output = open(args[1], "wb")
else:
if options.multiline:
suffix = "re_match_multiline"
else:
suffix = "re_match"
output = open(f"{args[0]}.{suffix}", "wb")
if options.multiline:
lines = [re.escape(input.read())]
else:
lines = ["%s\n" % re.escape(line.rstrip("\n\r")) for line in input]
output.writelines(lines)
output.close()
if __name__ == "__main__":
__main__()