-
Notifications
You must be signed in to change notification settings - Fork 29.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tools: update
sdwrap.py
to use Python3.8 features
- Loading branch information
1 parent
5f230d2
commit 88d0e1d
Showing
1 changed file
with
53 additions
and
67 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,82 +1,68 @@ | ||
#!/usr/bin/env python | ||
#!/usr/bin/env python3 | ||
|
||
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 | ||
firstline = True | ||
while (line := args.input.read(72)): | ||
if line.endswith('\n'): | ||
if firstline: | ||
outstr = f"{line}" | ||
else: | ||
outstr = f" {line}" | ||
firstline = True | ||
else: | ||
if firstline: | ||
outstr = f"{line:<71}*\n" | ||
firstline = False | ||
else: | ||
outstr = f" {line:<70}*\n" | ||
line = line[-1] + args.input.read(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 | ||
firstline = True | ||
for line in args.input: | ||
if len(line) > 80: | ||
print("Error: input line invalid (longer than 80 characters)", file=sys.stderr) | ||
return 1 | ||
if not firstline and line[0] != ' ': | ||
print("Error: continuation line does not start with a blank", file=sys.stderr) | ||
return 1 | ||
|
||
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) | ||
if len(line) > 71 and line[71] == '*': | ||
if firstline: | ||
args.output.write(line[:71]) | ||
firstline = False | ||
else: | ||
args.output.write(line[1:71]) | ||
else: | ||
if firstline: | ||
args.output.write(line) | ||
else: | ||
args.output.write(line[1:]) | ||
firstline = True | ||
return 0 | ||
|
||
args = parser.parse_args() | ||
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") | ||
parser.add_argument("-i", "--input", help="Input filename, defaults to stdin", default=None) | ||
parser.add_argument("-o", "--output", help="Output filename, defaults to stdout", default=None) | ||
|
||
if args.input is None: | ||
args.input = sys.stdin | ||
else: | ||
args.input = open(args.input, 'r') | ||
args = parser.parse_args() | ||
|
||
if args.output is None: | ||
args.output = sys.stdout | ||
else: | ||
args.output = open(args.output, 'w') | ||
with open(args.input, 'r') if args.input else sys.stdin as infile, \ | ||
open(args.output, 'w') if args.output else sys.stdout as outfile: | ||
|
||
if args.unwrap: | ||
return unwrap(args) | ||
args.input = infile | ||
args.output = outfile | ||
|
||
return wrap(args) | ||
if args.unwrap: | ||
return unwrap(args) | ||
return wrap(args) | ||
|
||
if __name__ == '__main__': | ||
sys.exit(Main()) | ||
sys.exit(main()) |