| #!/usr/bin/env python |
| |
| import argparse |
| import sys |
| |
| def wrap(args): |
| l = args.input.readline(72) |
| firstline = True |
| while l: |
| if l[-1] == '\n': |
| if firstline: |
| outstr = "{}".format(l) |
| else: |
| outstr = " {}".format(l) |
| firstline = True |
| l = args.input.readline(72) |
| else: |
| if firstline: |
| outstr = "{:<71}*\n".format(l[:-1]) |
| firstline = False |
| else: |
| outstr = " {:<70}*\n".format(l[:-1]) |
| l = l[-1] + args.input.readline(70) |
| args.output.write(outstr) |
| |
| return 0 |
| |
| def unwrap(args): |
| l = args.input.readline() |
| firstline = True |
| while l: |
| if len(l) > 80: |
| print("Error: input line invalid (longer than 80 characters)", file=sys.stderr) |
| return 1 |
| if not firstline and l[0] != ' ': |
| print("Error: continuation line not start with blank", file=sys.stderr) |
| return 1 |
| |
| if len(l) > 71 and l[71] == '*': |
| if firstline: |
| args.output.write(l[:71]) |
| firstline = False |
| else: |
| args.output.write(l[1:71]) |
| else: |
| if firstline: |
| args.output.write(l) |
| else: |
| args.output.write(l[1:]) |
| firstline = True |
| l = args.input.readline() |
| return 0 |
| |
| def Main(): |
| parser = argparse.ArgumentParser(description="Wrap sidedeck source to card formats") |
| parser.add_argument("-u", "--unwrap", |
| help="Unwrap sidedeck cards to source formats instead", action="store_true", |
| default=False) |
| parser.add_argument("-i", "--input", help="input filename, default to stdin", |
| action="store", default=None) |
| parser.add_argument("-o", "--output", help="output filename, default to stdout", |
| action="store", default=None) |
| |
| args = parser.parse_args() |
| |
| if args.input is None: |
| args.input = sys.stdin |
| else: |
| args.input = open(args.input, 'r') |
| |
| if args.output is None: |
| args.output = sys.stdout |
| else: |
| args.output = open(args.output, 'w') |
| |
| if args.unwrap: |
| return unwrap(args) |
| |
| return wrap(args) |
| |
| if __name__ == '__main__': |
| sys.exit(Main()) |