[Mailman-Developers] usage() going to stderr

Jon Parise jon@csh.rit.edu
Mon Oct 21 22:57:44 2002


---------------------- multipart/mixed attachment
On Mon, Oct 21, 2002 at 05:14:20PM -0400, Barry A. Warsaw wrote:

> >>>>> "DC" == David Champion <dgc@uchicago.edu> writes:
> 
>     DC> My feeling on the topic, having seen many programs that swing
>     DC> each way, is that usage() should go to stderr when it's caused
>     DC> by a usage error, but stdout when it's requested via "-h",
>     DC> "-?", "--help", or whatever.  At least this keeps with the
>     DC> general rule of thumb that errors go to stderr, and output
>     DC> requested by a user goes to stdout.
> 
> I'd agree in general, but it would mean we'd have to patch every
> usage() function in cron/* and bin/*.  Not something I want to spend
> time on.
 
I don't know what possessed me to do this, but see the attached patch.

-- 
Jon Parise (jon@csh.rit.edu)  ::  http://www.csh.rit.edu/~jon/

---------------------- multipart/mixed attachment
Index: bin/add_members
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/add_members,v
retrieving revision 2.12
diff -u -r2.12 add_members
--- bin/add_members	6 Sep 2002 02:31:43 -0000	2.12
+++ bin/add_members	21 Oct 2002 21:56:28 -0000
@@ -90,9 +90,13 @@
 
 
 def usage(status, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if status:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(status)
 
 
Index: bin/arch
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/arch,v
retrieving revision 2.8
diff -u -r2.8 arch
--- bin/arch	9 Oct 2002 04:22:54 -0000	2.8
+++ bin/arch	21 Oct 2002 21:56:28 -0000
@@ -69,9 +69,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/change_pw
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/change_pw,v
retrieving revision 2.3
diff -u -r2.3 change_pw
--- bin/change_pw	11 Feb 2002 23:38:36 -0000	2.3
+++ bin/change_pw	21 Oct 2002 21:56:28 -0000
@@ -83,9 +83,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/check_db
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/check_db,v
retrieving revision 2.4
diff -u -r2.4 check_db
--- bin/check_db	5 Mar 2002 16:24:22 -0000	2.4
+++ bin/check_db	21 Oct 2002 21:56:28 -0000
@@ -66,9 +66,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/check_perms
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/check_perms,v
retrieving revision 2.12
diff -u -r2.12 check_perms
--- bin/check_perms	20 Oct 2002 01:58:40 -0000	2.12
+++ bin/check_perms	21 Oct 2002 21:56:28 -0000
@@ -295,9 +295,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/cleanarch
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/cleanarch,v
retrieving revision 2.3
diff -u -r2.3 cleanarch
--- bin/cleanarch	26 Aug 2002 16:37:42 -0000	2.3
+++ bin/cleanarch	21 Oct 2002 21:56:28 -0000
@@ -64,9 +64,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/clone_member
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/clone_member,v
retrieving revision 2.7
diff -u -r2.7 clone_member
--- bin/clone_member	16 Mar 2002 06:57:37 -0000	2.7
+++ bin/clone_member	21 Oct 2002 21:56:28 -0000
@@ -77,9 +77,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/config_list
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/config_list,v
retrieving revision 2.10
diff -u -r2.10 config_list
--- bin/config_list	17 Oct 2002 17:14:56 -0000	2.10
+++ bin/config_list	21 Oct 2002 21:56:29 -0000
@@ -79,9 +79,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/dumpdb
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/dumpdb,v
retrieving revision 2.11
diff -u -r2.11 dumpdb
--- bin/dumpdb	23 Jul 2002 06:14:57 -0000	2.11
+++ bin/dumpdb	21 Oct 2002 21:56:29 -0000
@@ -64,9 +64,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__) % globals()
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__) % globals()
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/find_member
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/find_member,v
retrieving revision 2.4
diff -u -r2.4 find_member
--- bin/find_member	16 Mar 2002 06:57:37 -0000	2.4
+++ bin/find_member	21 Oct 2002 21:56:29 -0000
@@ -72,9 +72,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/genaliases
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/genaliases,v
retrieving revision 2.10
diff -u -r2.10 genaliases
--- bin/genaliases	16 Mar 2002 06:57:37 -0000	2.10
+++ bin/genaliases	21 Oct 2002 21:56:29 -0000
@@ -42,9 +42,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/inject
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/inject,v
retrieving revision 2.0
diff -u -r2.0 inject
--- bin/inject	26 Jan 2002 23:32:13 -0000	2.0
+++ bin/inject	21 Oct 2002 21:56:29 -0000
@@ -52,9 +52,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/list_admins
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/list_admins,v
retrieving revision 2.3
diff -u -r2.3 list_admins
--- bin/list_admins	25 May 2002 07:07:33 -0000	2.3
+++ bin/list_admins	21 Oct 2002 21:56:29 -0000
@@ -53,9 +53,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/list_lists
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/list_lists,v
retrieving revision 2.3
diff -u -r2.3 list_lists
--- bin/list_lists	16 Mar 2002 06:57:37 -0000	2.3
+++ bin/list_lists	21 Oct 2002 21:56:29 -0000
@@ -51,9 +51,13 @@
 program = sys.argv[0]
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/list_members
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/list_members,v
retrieving revision 2.10
diff -u -r2.10 list_members
--- bin/list_members	22 Aug 2002 03:48:25 -0000	2.10
+++ bin/list_members	21 Oct 2002 21:56:29 -0000
@@ -81,9 +81,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/mailmanctl
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/mailmanctl,v
retrieving revision 2.22
diff -u -r2.22 mailmanctl
--- bin/mailmanctl	21 Oct 2002 21:34:25 -0000	2.22
+++ bin/mailmanctl	21 Oct 2002 21:56:29 -0000
@@ -122,9 +122,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/mmsitepass
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/mmsitepass,v
retrieving revision 2.5
diff -u -r2.5 mmsitepass
--- bin/mmsitepass	16 Mar 2002 06:57:37 -0000	2.5
+++ bin/mmsitepass	21 Oct 2002 21:56:29 -0000
@@ -50,9 +50,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/newlist
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/newlist,v
retrieving revision 2.14
diff -u -r2.14 newlist
--- bin/newlist	6 Oct 2002 01:35:57 -0000	2.14
+++ bin/newlist	21 Oct 2002 21:56:29 -0000
@@ -85,9 +85,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/pygettext.py
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/pygettext.py,v
retrieving revision 2.5
diff -u -r2.5 pygettext.py
--- bin/pygettext.py	7 Sep 2001 23:18:47 -0000	2.5
+++ bin/pygettext.py	21 Oct 2002 21:56:30 -0000
@@ -183,9 +183,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__) % globals()
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__) % globals()
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/qrunner
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/qrunner,v
retrieving revision 2.8
diff -u -r2.8 qrunner
--- bin/qrunner	21 Oct 2002 21:34:41 -0000	2.8
+++ bin/qrunner	21 Oct 2002 21:56:30 -0000
@@ -89,9 +89,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/remove_members
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/remove_members,v
retrieving revision 2.5
diff -u -r2.5 remove_members
--- bin/remove_members	6 Mar 2002 15:18:42 -0000	2.5
+++ bin/remove_members	21 Oct 2002 21:56:30 -0000
@@ -61,9 +61,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/rmlist
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/rmlist,v
retrieving revision 2.5
diff -u -r2.5 rmlist
--- bin/rmlist	2 Jan 2002 02:02:11 -0000	2.5
+++ bin/rmlist	21 Oct 2002 21:56:30 -0000
@@ -49,9 +49,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/sync_members
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/sync_members,v
retrieving revision 2.10
diff -u -r2.10 sync_members
--- bin/sync_members	8 Oct 2002 19:57:38 -0000	2.10
+++ bin/sync_members	21 Oct 2002 21:56:30 -0000
@@ -93,9 +93,13 @@
 PROGRAM = sys.argv[0]
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/transcheck
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/transcheck,v
retrieving revision 2.1
diff -u -r2.1 transcheck
--- bin/transcheck	15 Aug 2002 16:42:19 -0000	2.1
+++ bin/transcheck	21 Oct 2002 21:56:30 -0000
@@ -40,9 +40,13 @@
 
 
 def usage(code, msg):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/unshunt
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/unshunt,v
retrieving revision 2.3
diff -u -r2.3 unshunt
--- bin/unshunt	21 Oct 2002 16:36:36 -0000	2.3
+++ bin/unshunt	21 Oct 2002 21:56:31 -0000
@@ -40,9 +40,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: bin/update
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/update,v
retrieving revision 2.20
diff -u -r2.20 update
--- bin/update	20 Oct 2002 15:39:46 -0000	2.20
+++ bin/update	21 Oct 2002 21:56:31 -0000
@@ -523,9 +523,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__) % globals()
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__) % globals()
     if msg:
-        print msg
+        print >> sys.stderr, msg
     sys.exit(code)
 
 
Index: bin/withlist
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/withlist,v
retrieving revision 2.9
diff -u -r2.9 withlist
--- bin/withlist	14 Mar 2002 23:42:20 -0000	2.9
+++ bin/withlist	21 Oct 2002 21:56:31 -0000
@@ -137,9 +137,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: cron/bumpdigests
===================================================================
RCS file: /cvsroot/mailman/mailman/cron/bumpdigests,v
retrieving revision 2.6
diff -u -r2.6 bumpdigests
--- cron/bumpdigests	16 Mar 2002 06:57:37 -0000	2.6
+++ cron/bumpdigests	21 Oct 2002 21:56:31 -0000
@@ -48,9 +48,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: cron/disabled
===================================================================
RCS file: /cvsroot/mailman/mailman/cron/disabled,v
retrieving revision 2.7
diff -u -r2.7 disabled
--- cron/disabled	9 Aug 2002 21:32:20 -0000	2.7
+++ cron/disabled	21 Oct 2002 21:56:31 -0000
@@ -86,9 +86,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: cron/gate_news
===================================================================
RCS file: /cvsroot/mailman/mailman/cron/gate_news,v
retrieving revision 2.14
diff -u -r2.14 gate_news
--- cron/gate_news	21 Oct 2002 21:35:01 -0000	2.14
+++ cron/gate_news	21 Oct 2002 21:56:31 -0000
@@ -69,10 +69,14 @@
 
 
 def usage(status, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print msg
-    sys.exit(status)
+        print >> fd, msg
+    sys.exit(code)
 
 
 
Index: cron/mailpasswds
===================================================================
RCS file: /cvsroot/mailman/mailman/cron/mailpasswds,v
retrieving revision 2.11
diff -u -r2.11 mailpasswds
--- cron/mailpasswds	22 May 2002 02:39:42 -0000	2.11
+++ cron/mailpasswds	21 Oct 2002 21:56:31 -0000
@@ -67,9 +67,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: cron/nightly_gzip
===================================================================
RCS file: /cvsroot/mailman/mailman/cron/nightly_gzip,v
retrieving revision 2.5
diff -u -r2.5 nightly_gzip
--- cron/nightly_gzip	16 Mar 2002 06:57:37 -0000	2.5
+++ cron/nightly_gzip	21 Oct 2002 21:56:32 -0000
@@ -63,9 +63,13 @@
 VERBOSE = 0
 
 def usage(code, msg=''):
-    print __doc__ % globals()
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__) % globals()
     if msg:
-        print msg
+        print >> fd, msg
     sys.exit(code)
 
 
Index: cron/senddigests
===================================================================
RCS file: /cvsroot/mailman/mailman/cron/senddigests,v
retrieving revision 2.7
diff -u -r2.7 senddigests
--- cron/senddigests	28 Aug 2002 16:06:15 -0000	2.7
+++ cron/senddigests	21 Oct 2002 21:56:32 -0000
@@ -48,9 +48,13 @@
 
 
 def usage(code, msg=''):
-    print >> sys.stderr, _(__doc__)
+    if code:
+        fd = sys.stderr
+    else:
+        fd = sys.stdout
+    print >> fd, _(__doc__)
     if msg:
-        print >> sys.stderr, msg
+        print >> fd, msg
     sys.exit(code)
 
 

---------------------- multipart/mixed attachment--