Skip to content

Commit

Permalink
options.py: o.fatal(): print error after, not before, usage message.
Browse files Browse the repository at this point in the history
git prints the error *before* the usage message, but the more I play with
it, the more I'm annoyed by that behaviour.  The usage message can be pretty
long, and the error gots lost way above the usage message.  The most
important thing *is* the error, so let's print it last.

Signed-off-by: Avery Pennarun <[email protected]>
  • Loading branch information
apenwarr committed Feb 20, 2011
1 parent c078168 commit 5a9bc0a
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 10 deletions.
7 changes: 4 additions & 3 deletions lib/bup/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,14 +184,15 @@ def _gen_usage(self):
def usage(self, msg=""):
"""Print usage string to stderr and abort."""
sys.stderr.write(self._usagestr)
if msg:
sys.stderr.write(msg)
e = self._onabort and self._onabort(msg) or None
if e:
raise e

def fatal(self, s):
def fatal(self, msg):
"""Print an error message to stderr and abort with usage string."""
msg = 'error: %s\n' % s
sys.stderr.write(msg)
msg = '\nerror: %s\n' % msg
return self.usage(msg)

def parse(self, args):
Expand Down
13 changes: 6 additions & 7 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
# after running 'bup newliner', the tty_width() ioctl won't work anymore
os.environ['WIDTH'] = str(tty_width())

def usage():
def usage(msg=""):
log('Usage: bup [-?|--help] [-d BUP_DIR] [--debug] [--profile] '
'<command> [options...]\n\n')
common = dict(
Expand Down Expand Up @@ -62,6 +62,8 @@ def usage():

log("See 'bup help COMMAND' for more information on " +
"a specific command.\n")
if msg:
log("\n%s\n" % msg)
sys.exit(99)


Expand All @@ -73,8 +75,7 @@ def usage():
optspec = ['help', 'version', 'debug', 'profile', 'bup-dir=']
global_args, subcmd = getopt.getopt(argv[1:], '?VDd:', optspec)
except getopt.GetoptError, ex:
log('error: ' + ex.msg + '\n')
usage()
usage('error: %s' % ex.msg)

help_requested = None
dest_dir = None
Expand All @@ -93,8 +94,7 @@ def usage():
elif opt[0] in ['-d', '--bup-dir']:
dest_dir = opt[1]
else:
log('error: unexpected option "%s"\n' % opt[0])
usage()
usage('error: unexpected option "%s"' % opt[0])

if len(subcmd) == 0:
if help_requested:
Expand Down Expand Up @@ -124,8 +124,7 @@ def subpath(s):

subcmd[0] = subpath(subcmd_name)
if not os.path.exists(subcmd[0]):
log('error: unknown command "%s"\n' % subcmd_name)
usage()
usage('error: unknown command "%s"' % subcmd_name)

already_fixed = atoi(os.environ.get('BUP_FORCE_TTY'))
if subcmd_name in ['mux', 'ftp', 'help']:
Expand Down

0 comments on commit 5a9bc0a

Please sign in to comment.