improved test/main program
This commit is contained in:
parent
a1e7e62893
commit
54c1510cb7
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
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:
|
||||
decode(sys.stdin, sys.stdout)
|
||||
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(sys.stdin, sys.stdout, 0)
|
||||
encode(fp, sys.stdout, tabs)
|
||||
if fp is not sys.stdin:
|
||||
fp.close()
|
||||
if sts:
|
||||
sys.exit(sts)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
test()
|
||||
|
|
Loading…
Reference in New Issue