Index: trunk/bin/bletchley-analyze
===================================================================
--- trunk/bin/bletchley-analyze	(revision 22)
+++ trunk/bin/bletchley-analyze	(revision 28)
@@ -29,9 +29,15 @@
 
 
-parser = argparse.ArgumentParser(description='Analyzes samples of encrypted data in an attempt to decode samples to binary and identify patterns useful in cryptanalysis.')
+parser = argparse.ArgumentParser(
+    description='Analyzes samples of encrypted data in an attempt to decode'
+    ' samples to binary and identify patterns useful in cryptanalysis.'
+    ' For more information, see:  http://code.google.com/p/bletchley/wiki/Overview')
 parser.add_argument('input_file', nargs='?', default=None,
-                    help='File containing encrypted blobs to analyze, one per line. Omit to read from stdin.')
+                    help='File containing encrypted blobs to analyze, one per'
+                    ' line. Omit to read from stdin.')
 parser.add_argument('-e', dest='encoding_chain', type=str, default=None,
-                    help='Comma-separated sequence of formats used to encode the tokens, beginning with the last one applied. (default: auto-detect)')
+                    help='Comma-separated sequence of formats used to encode'
+                    ' the tokens, beginning with the last one applied. '
+                    '(default: auto-detect. Use "?" for a listing of supported encodings.)')
 parser.add_argument('-b', dest='block_size', type=int, default=8,
                     help='The block size displayed and used in highlighting (default: 8)')
@@ -44,8 +50,11 @@
 options = parser.parse_args()
 
+if options.encoding_chain == '?':
+    print('\n\t'.join(['Supported encodings:']+blobtools.supportedEncodings()))
+    sys.exit(0)
+
 input_file = sys.stdin
 if options.input_file is not None:
     input_file = file(options.input_file, 'rb')
-
 
 blobs = input_file.read().rstrip('\n').replace('\r', '').split('\n')
Index: trunk/bin/bletchley-decode
===================================================================
--- trunk/bin/bletchley-decode	(revision 22)
+++ trunk/bin/bletchley-decode	(revision 28)
@@ -28,10 +28,20 @@
 
 
-parser = argparse.ArgumentParser(description='A simple decoder script that is useful in shell scripts.')
-parser.add_argument('input_file', nargs='?', default=None,
-                    help='File containing encrypted blobs to analyze, one per line. Omit to read from stdin.')
-parser.add_argument('-e', dest='encoding_chain', type=str, required=True,
-                    help='Comma-separated sequence of encoding formats used to encode the token.')
+parser = argparse.ArgumentParser(
+    description='A simple decoder script that is useful in shell scripts.'
+    ' For more information, see:  http://code.google.com/p/bletchley/wiki/Overview')
+parser.add_argument(
+    'input_file', nargs='?', default=None,
+    help='File containing encrypted blobs to analyze, one per line.'
+    ' Omit to read from stdin.')
+parser.add_argument(
+    '-e', dest='encoding_chain', type=str, required=True,
+    help='Comma-separated sequence of encoding formats used to encode the token.'
+    ' (Use "?" for a listing of supported encodings.)')
 options = parser.parse_args()
+
+if options.encoding_chain == '?':
+    print('\n\t'.join(['Supported encodings:']+blobtools.supportedEncodings()))
+    sys.exit(0)
 
 input_file = sys.stdin
Index: trunk/bin/bletchley-encode
===================================================================
--- trunk/bin/bletchley-encode	(revision 22)
+++ trunk/bin/bletchley-encode	(revision 28)
@@ -28,10 +28,21 @@
 
 
-parser = argparse.ArgumentParser(description='A simple encoder script that is useful in shell scripts.')
-parser.add_argument('input_file', nargs='?', default=None,
-                    help='File containing encrypted blobs to analyze, one per line. Omit to read from stdin.')
-parser.add_argument('-e', dest='encoding_chain', type=str, required=True,
-                    help='Comma-separated sequence of encoding formats used to encode the token, starting with the last encoding to apply.')
+parser = argparse.ArgumentParser(
+    description='A simple encoder script that is useful in shell scripts.'
+    ' For more information, see:  http://code.google.com/p/bletchley/wiki/Overview')
+parser.add_argument(
+    'input_file', nargs='?', default=None,
+    help='File containing encrypted blobs to analyze, one per line. '
+    'Omit to read from stdin.')
+parser.add_argument(
+    '-e', dest='encoding_chain', type=str, required=True,
+    help='Comma-separated sequence of encoding formats used to encode the'
+    ' token, starting with the last encoding to apply.'
+    ' (Use "?" for a listing of supported encodings.)')
 options = parser.parse_args()
+
+if options.encoding_chain == '?':
+    print('\n\t'.join(['Supported encodings:']+blobtools.supportedEncodings()))
+    sys.exit(0)
 
 input_file = sys.stdin
@@ -43,3 +54,5 @@
 specified_encodings = options.encoding_chain.split(',')
 specified_encodings.reverse()
+# XXX: report invalid encodings
 sys.stdout.write(blobtools.encodeChain(specified_encodings, blob))
+sys.stdout.write('\n')
Index: trunk/bin/bletchley-http2py
===================================================================
--- trunk/bin/bletchley-http2py	(revision 22)
+++ trunk/bin/bletchley-http2py	(revision 28)
@@ -41,8 +41,16 @@
     sys.exit(1)
 
-parser = argparse.ArgumentParser(description='Process some integers.')
-parser.add_argument('requestfile', type=file, nargs='?', default=sys.stdin, 
-                    help='A file containing an HTTP request.  Defaults to stdin if omitted.')
-parser.add_argument('--burp', action='store_true', help='Input file is a XML export from Burp. (First request in file is used.)')
+parser = argparse.ArgumentParser(
+    description='A script which accepts an HTTP request and prints out a'
+    ' generated Python script which sends a similar request.  This is useful'
+    ' when one wants to automate sending a large number of requests to a'
+    ' particular page or application.'
+    ' For more information, see: http://code.google.com/p/bletchley/wiki/Overview')
+parser.add_argument(
+    'requestfile', type=file, nargs='?', default=sys.stdin, 
+    help='A file containing an HTTP request.  Defaults to stdin if omitted.')
+parser.add_argument(
+    '--burp', action='store_true', help='Input file is a XML export from Burp.'
+    ' (First request in file is used.)')
 args = parser.parse_args()
 
