diff options
Diffstat (limited to 'gbp')
-rw-r--r-- | gbp/config.py | 6 | ||||
-rw-r--r-- | gbp/scripts/create_remote_repo.py | 36 |
2 files changed, 35 insertions, 7 deletions
diff --git a/gbp/config.py b/gbp/config.py index 960d4b2e..35c78b40 100644 --- a/gbp/config.py +++ b/gbp/config.py @@ -126,6 +126,7 @@ class GbpOptionParser(OptionParser): 'pbuilder-autoconf' : 'True', 'pbuilder-options': '', 'template-dir': '', + 'remote-config': '', } help = { 'debian-branch': @@ -210,7 +211,9 @@ class GbpOptionParser(OptionParser): 'pbuilder-options': "Options to pass to pbuilder, default is '%(pbuilder-options)s'", 'template-dir': - "Template directory used by git init, default is %(template-dir)s", + "Template directory used by git init, default is '%(template-dir)s'", + 'remote-config': + "Remote defintion in gbp.conf used to create the remote repository", } def_config_files = [ '/etc/git-buildpackage/gbp.conf', @@ -358,6 +361,7 @@ class GbpOptionParser(OptionParser): neg_help = "negates '--%s%s'" % (self.prefix, option_name) self.add_config_file_option(option_name="no-%s" % option_name, dest=dest, help=neg_help, action="store_false") + class GbpOptionGroup(OptionGroup): def add_config_file_option(self, option_name, dest, help=None, **kwargs): """ diff --git a/gbp/scripts/create_remote_repo.py b/gbp/scripts/create_remote_repo.py index c26551b8..1e6b3f8a 100644 --- a/gbp/scripts/create_remote_repo.py +++ b/gbp/scripts/create_remote_repo.py @@ -225,10 +225,30 @@ def push_branches(remote, branches): gitPush([remote['url'], '--tags']) -def parse_args(argv): +def parse_args(argv, sections=[]): + """ + Parse the command line arguments and config files. + + @param argv: the command line arguments + @type argv: C{list} of C{str} + @param sections: additional sections to add to the config file parser + besides the command name + @type sections: C{list} of C{str} + """ + + # We simpley handle the template section as an additional config file + # section to parse, this makes e.g. --help work as expected: + for arg in argv: + if arg.startswith('--remote-config='): + sections = ['remote-config %s' % arg.split('=',1)[1]] + break + else: + sections = [] + parser = GbpOptionParserDebian(command=os.path.basename(argv[0]), prefix='', usage='%prog [options] - ' - 'create a remote repository') + 'create a remote repository', + sections=sections) branch_group = GbpOptionGroup(parser, "branch options", "branch layout and tracking options") @@ -257,8 +277,8 @@ def parse_args(argv): help="The name of the remote, default is 'origin'") parser.add_config_file_option(option_name="template-dir", dest="template_dir") - parser.add_config_file_option(option_name="remote-template", - dest="remote_template") + parser.add_config_file_option(option_name="remote-config", + dest="remote_config") (options, args) = parser.parse_args(argv) @@ -270,9 +290,13 @@ def main(argv): changelog = 'debian/changelog' cmd = [] - options, args = parse_args(argv) - gbp.log.setup(options.color, options.verbose) + try: + options, args = parse_args(argv) + except Exception as e: + print >>sys.stderr, "%s" % e + return 1 + gbp.log.setup(options.color, options.verbose) try: repo = DebianGitRepository(os.path.curdir) except GitRepositoryError: |