summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2011-02-06 17:36:14 +0100
committerGuido Günther <agx@sigxcpu.org>2011-02-09 20:31:12 +0100
commit0212ccfbfcee55d61058cbe57e69f44510c39b6a (patch)
treee1689f4440604cbc59d8d1f086551b7a444f7598
parent14fdbce0a71f867d3809f3cf30b836ae57a7c7a4 (diff)
Split out command line parsing
to honor pycheckers sensible request for smaller functions. Git-Dch: Ignore
-rwxr-xr-xdebian/rules2
-rwxr-xr-xgit-buildpackage31
-rwxr-xr-xgit-import-dsc23
-rwxr-xr-xgit-import-orig17
4 files changed, 46 insertions, 27 deletions
diff --git a/debian/rules b/debian/rules
index 034367a..b0c44e6 100755
--- a/debian/rules
+++ b/debian/rules
@@ -29,7 +29,7 @@ POD_MANPAGES=docs/git-pbuilder.1
MANPAGES=$(SGML_MANPAGES) $(POD_MANPAGES)
MANUAL=docs/manual-html
PYCHECKS=$(patsubst %,%.py,$(COMMANDS))
-PYCHECKER_ARGS=--maxlines=300 --maxargs=12 -boptparse --no-override --no-shadowbuiltin
+PYCHECKER_ARGS=--maxlines=200 --maxargs=12 -boptparse --no-override --no-shadowbuiltin
GBP_VERSION=gbp/gbp_version.py
VERSION_ENT=docs/version.ent
diff --git a/git-buildpackage b/git-buildpackage
index 8e8af02..d9bdfdf 100755
--- a/git-buildpackage
+++ b/git-buildpackage
@@ -216,12 +216,7 @@ def setup_pbuilder(options):
os.environ['ARCH'] = options.pbuilder_arch
-def main(argv):
- changelog = 'debian/changelog'
- retval = 0
- prefix = "git-"
- cp = None
-
+def parse_args(argv, prefix):
args = [ arg for arg in argv[1:] if arg.find('--%s' % prefix) == 0 ]
dpkg_args = [ arg for arg in argv[1:] if arg.find('--%s' % prefix) == -1 ]
@@ -234,7 +229,7 @@ def main(argv):
parser = GbpOptionParser(command=os.path.basename(argv[0]), prefix=prefix)
except ConfigParser.ParsingError, err:
gbp.log.err(err)
- return 1
+ return None, None, None
tag_group = GbpOptionGroup(parser, "tag options", "options related to git tag creation")
branch_group = GbpOptionGroup(parser, "branch options", "branch layout options")
@@ -296,16 +291,30 @@ def main(argv):
export_group.add_option("--git-dont-purge", action="store_false", dest="purge", default=True,
help="retain exported package build directory")
export_group.add_boolean_config_file_option(option_name="overlay", dest="overlay")
- (options, args) = parser.parse_args(args)
- gbp.log.setup(options.color, options.verbose)
+ options, args = parser.parse_args(args)
+ gbp.log.setup(options.color, options.verbose)
if options.retag:
if not options.tag and not options.tag_only:
gbp.log.err("'--%sretag' needs either '--%stag' or '--%stag-only'" % (prefix, prefix, prefix))
- return 1
+ return None, None, None
if options.overlay and not options.export_dir:
- parser.error("Overlay must be used with --git-export-dir")
+ gbp.log.err("Overlay must be used with --git-export-dir")
+ return None, None, None
+
+ return options, args, dpkg_args
+
+
+def main(argv):
+ retval = 0
+ changelog = 'debian/changelog'
+ prefix = "git-"
+ cp = None
+
+ options, gbp_args, dpkg_args = parse_args(argv, prefix)
+ if not options:
+ return 1
try:
repo = GitRepository(os.path.curdir)
diff --git a/git-import-dsc b/git-import-dsc
index 6503966..2a6ef00 100755
--- a/git-import-dsc
+++ b/git-import-dsc
@@ -148,19 +148,13 @@ def move_tag_stamp(repo, format, version):
repo.move_tag(old, new)
-def main(argv):
- dirs = dict(top=os.path.abspath(os.curdir))
- needs_repo = False
- ret = 0
- skipped = False
- parents = None
-
+def parse_args(argv):
try:
parser = GbpOptionParser(command=os.path.basename(argv[0]), prefix='',
usage='%prog [options] /path/to/package.dsc')
except ConfigParser.ParsingError, err:
gbp.log.err(err)
- return 1
+ return None, None
import_group = GbpOptionGroup(parser, "import options",
"pristine-tar and filtering")
@@ -205,12 +199,23 @@ def main(argv):
(options, args) = parser.parse_args(argv[1:])
gbp.log.setup(options.color, options.verbose)
+ return options, args
+
+
+def main(argv):
+ dirs = dict(top=os.path.abspath(os.curdir))
+ needs_repo = False
+ ret = 0
+ skipped = False
+ parents = None
+
+ options, args = parse_args(argv)
gitTag = gbpc.GitTag(options.sign_tags, options.keyid)
try:
if len(args) != 1:
- parser.print_help()
+ gbp.log.err("Need to give exactly one package to import. Try --help.")
raise GbpError
else:
pkg = args[0]
diff --git a/git-import-orig b/git-import-orig
index c735783..391c5ee 100755
--- a/git-import-orig
+++ b/git-import-orig
@@ -175,17 +175,14 @@ def ask_package_version(default):
# bit clearer.
gbp.log.warn("\nNot a valid upstream version: '%s'.\n%s" % (version, upstreamversion_msg))
-def main(argv):
- ret = 0
- tmpdir = ''
- pristine_orig = None
+def parse_args(argv):
try:
parser = GbpOptionParser(command=os.path.basename(argv[0]), prefix='',
usage='%prog [options] /path/to/upstream-version.tar.gz | --uscan')
except ConfigParser.ParsingError, err:
gbp.log.err(err)
- return 1
+ return None, None
import_group = GbpOptionGroup(parser, "import options",
"pristine-tar and filtering")
@@ -248,7 +245,15 @@ def main(argv):
if options.filters:
turn_off_fastimport(options, "Import filters currently not supported with fastimport.")
+ return options, args
+
+
+def main(argv):
+ ret = 0
+ tmpdir = ''
+ pristine_orig = None
+ (options, args) = parse_args(argv)
try:
if options.uscan: # uscan mode
@@ -272,7 +277,7 @@ def main(argv):
# tarball specified
if len(args) != 1:
- parser.print_help()
+ gbp.log.err("More than one tarball specified. Try --help.")
raise GbpError
else:
archive = args[0]