]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
improved test/main program
authorGuido van Rossum <guido@python.org>
Mon, 18 Sep 1995 21:49:24 +0000 (21:49 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 18 Sep 1995 21:49:24 +0000 (21:49 +0000)
Lib/base64.py
Lib/quopri.py

index 55f01ced092cde691ad6fa5bf712b59772361fc2..90b5273dcefd1dd9d466a5e78d15ec412e980228 100755 (executable)
@@ -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
index 4c39228cbf3e48e42faa655d36b6ecdd4aa97699..55608d12061bbea7c5c03d8c2b7f60b96a2b7a4e 100755 (executable)
@@ -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()