From 54c1510cb7eeda3135cd4ad23aebef8d13db7bc1 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 18 Sep 1995 21:49:24 +0000 Subject: [PATCH] improved test/main program --- Lib/base64.py | 5 +++-- Lib/quopri.py | 48 ++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 43 insertions(+), 10 deletions(-) diff --git a/Lib/base64.py b/Lib/base64.py index 55f01ced092..90b5273dcef 100755 --- a/Lib/base64.py +++ b/Lib/base64.py @@ -106,18 +106,19 @@ def decodestring(s): decode(f, g) return g.getvalue() -# Small test program, reads stdin, writes stdout. -# no arg: encode, any arg: decode. +# Small test program def test(): import sys, getopt try: opts, args = getopt.getopt(sys.argv[1:], 'deut') except getopt.error, msg: + sys.stdout = sys.stderr print msg print """usage: basd64 [-d] [-e] [-u] [-t] [file|-] -d, -u: decode -e: encode (default) -t: decode string 'Aladdin:open sesame'""" + sys.exit(2) func = encode for o, a in opts: if o == '-e': func = encode diff --git a/Lib/quopri.py b/Lib/quopri.py index 4c39228cbf3..55608d12061 100755 --- a/Lib/quopri.py +++ b/Lib/quopri.py @@ -89,13 +89,45 @@ def unhex(s): def test(): import sys - if sys.argv[1:]: - if sys.argv[1] == '-t': # Quote tabs - encode(sys.stdin, sys.stdout, 1) - else: - decode(sys.stdin, sys.stdout) - else: - encode(sys.stdin, sys.stdout, 0) + import getopt + try: + opts, args = getopt.getopt(sys.argv[1:], 'td') + except getopt.error, msg: + sys.stdout = sys.stderr + print msg + print "usage: quopri [-t | -d] [file] ..." + print "-t: quote tabs" + print "-d: decode; default encode" + sys.exit(2) + deco = 0 + tabs = 0 + for o, a in opts: + if o == '-t': tabs = 1 + if o == '-d': deco = 1 + if tabs and deco: + sys.stdout = sys.stderr + print "-t and -d are mutually exclusive" + sys.exit(2) + if not args: args = ['-'] + sts = 0 + for file in args: + if file == '-': + fp = sys.stdin + else: + try: + fp = open(file) + except IOError, msg: + sys.stderr.write("%s: can't open (%s)\n" % (file, msg)) + sts = 1 + continue + if deco: + decode(fp, sys.stdout) + else: + encode(fp, sys.stdout, tabs) + if fp is not sys.stdin: + fp.close() + if sts: + sys.exit(sts) if __name__ == '__main__': - main() + test()