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 <apenwarr@gmail.com>
  • 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 Original file line Diff line number Diff line change
Expand Up @@ -184,14 +184,15 @@ def _gen_usage(self):
def usage(self, msg=""): def usage(self, msg=""):
"""Print usage string to stderr and abort.""" """Print usage string to stderr and abort."""
sys.stderr.write(self._usagestr) sys.stderr.write(self._usagestr)
if msg:
sys.stderr.write(msg)
e = self._onabort and self._onabort(msg) or None e = self._onabort and self._onabort(msg) or None
if e: if e:
raise e raise e


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


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


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


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




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


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


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


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


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

0 comments on commit 5a9bc0a

Please sign in to comment.