Run as if invoked from the command line. 'argv' is a Unix-style list of
        arguments, where the zeroth item is the program name (which is ignored
        here). Usage help is printed if deemed appropriate (e.g., no arguments
        are given). This function always terminates with an exception, with
        the exception being a SystemExit(0) in case of success.

        Note that we don't actually use `argv[0]` to set `argv0` because it
        will generally be the full path to the script name, which is
        unattractive.

def commandline (self, argv):
        """Run as if invoked from the command line. 'argv' is a Unix-style list of
        arguments, where the zeroth item is the program name (which is ignored
        here). Usage help is printed if deemed appropriate (e.g., no arguments
        are given). This function always terminates with an exception, with
        the exception being a SystemExit(0) in case of success.

        Note that we don't actually use `argv[0]` to set `argv0` because it
        will generally be the full path to the script name, which is
        unattractive.

        """
        self.invoke_with_usage (argv[1:],
                                tool=self,
                                argv0=self.cli_name)