(Arne Babenhauserheide)
2013-03-26: take code from stdin with the argument - and save it to a file with v0.2 take code from stdin with the argument - and save it to a file with the option -o FILE.
diff --git a/wisp.py b/wisp.py --- a/wisp.py +++ b/wisp.py @@ -300,7 +300,7 @@ def wisp2lisp(code): lines = [] for line in code.splitlines(): lines.append(Line(line)) - + # finally emit matching lisp code # write into the lisp lines with a delay of 1 line lisplines = [] @@ -355,10 +355,22 @@ def wisp2lisp(code): if __name__ == "__main__": import sys - if sys.argv[1:]: - sourcefile = sys.argv[1] + import optparse + parser = optparse.OptionParser("[-o outfile] [file | -]") + parser.add_option("-o", "--output", default="") + opts, args = parser.parse_args() + if args: + sourcefile = args[0] else: sourcefile = "example.w" - with open(sourcefile) as f: - wisp = f.read() - print(wisp2lisp(wisp)) + # accept stdin as input + if sourcefile == "-": + wisp = sys.stdin.read() + else: + with open(sourcefile) as f: + wisp = f.read() + if opts.output: + with open(opts.output, "w") as f: + f.write(wisp2lisp(wisp) + "\n") + else: + print(wisp2lisp(wisp))