summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xLib/base64.py5
-rwxr-xr-xLib/quopri.py48
2 files changed, 43 insertions, 10 deletions
diff --git a/Lib/base64.py b/Lib/base64.py
index 55f01ce..90b5273 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 4c39228..55608d1 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()