diff options
author | Guido Günther <agx@sigxcpu.org> | 2012-01-08 19:35:34 +0100 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2013-06-18 23:55:05 +0200 |
commit | 12dce5f8469d5a6508df518134cae133d8da6efb (patch) | |
tree | c6c7d8b4507ea5a44b76bbd4566f1b71dfc3c8ba /gbp/scripts | |
parent | 75cbd9af3f63adbbaaa04187e749583be89a17e2 (diff) |
Add wrapper for all gbp commands
So like git you can now use gbp <command> instead of git-<command> or
gbp-<command>. The manpages and docs aren't adjusted yet.
Diffstat (limited to 'gbp/scripts')
-rwxr-xr-x | gbp/scripts/command.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/gbp/scripts/command.py b/gbp/scripts/command.py new file mode 100755 index 0000000..c6ae493 --- /dev/null +++ b/gbp/scripts/command.py @@ -0,0 +1,67 @@ +#!/usr/bin/python +# vim: set fileencoding=utf-8 : +# +# (C) 2013 Guido Günther <agx@sigxcpu.org> +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +"""Wrapper for all gbp commands""" + +import sys + +def sanitize(cmd): + return cmd.replace('-', '_') + +def usage(): + print """ +Usage: + gbp <command> [<args>] + +The most commonly used commands are: + + buildpackage - build a Debian package + import-orig - import a new upstream tarball + import-dsc - import a single Debian source package + import-dscs - import multiple Debian source packages +""" + +def import_command(cmd): + if '.' in cmd: + raise ImportError('Illegal module name') + + m = __import__('gbp.scripts.%s' % cmd, fromlist='main', level=0) + return m + + +def gbp_command(argv=None): + argv = argv or sys.argv + + if len(argv) < 2: + usage() + return 1 + + cmd = argv[1] + args = argv[1:] + + cmd = sanitize(cmd) + try: + module = import_command(cmd) + except ImportError as e: + print >>sys.stderr, "'%s' is not a valid command." % cmd + if '--debug' in args: + print >>sys.stderr, e + return 2 + + return module.main(args) + +# vim:et:ts=4:sw=4:et:sts=4:ai:set list listchars=tab\:»·,trail\:·: |