Refactor config.py as preparation for rpm support.
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Thu, 12 Jan 2012 13:40:42 +0000 (15:40 +0200)
committerGuido Günther <agx@sigxcpu.org>
Mon, 13 Feb 2012 17:54:16 +0000 (18:54 +0100)
Split GbpOptionParser in to a common base class and a Debian
specific subclass, as a preparation for upcoming RPM support.

This allows having different default values (and help texts) for common
options between different package types, and, clearer separation of
package type specific options.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
examples/gbp-add-patch
gbp/config.py
gbp/scripts/buildpackage.py
gbp/scripts/clone.py
gbp/scripts/create_remote_repo.py
gbp/scripts/dch.py
gbp/scripts/import_dsc.py
gbp/scripts/import_orig.py
gbp/scripts/pq.py [changed mode: 0644->0755]
gbp/scripts/pull.py

index 5a974cd..6af6bc4 100755 (executable)
@@ -38,7 +38,7 @@ import os, os.path
 from gbp.command_wrappers import (Command,
                                   CommandExecFailed,
                                   GitCommand)
-from gbp.config import (GbpOptionParser, GbpOptionGroup)
+from gbp.config import (GbpOptionParserDebian, GbpOptionGroup)
 from gbp.errors import GbpError
 from gbp.git import (GitRepositoryError, GitRepository)
 from gbp.patch_series import Patch
@@ -70,7 +70,7 @@ def build_commit_msg(repo, patch, options):
 def main(argv):
     retval = 0
 
-    parser = GbpOptionParser(command=os.path.basename(argv[0]), prefix='',
+    parser = GbpOptionParserDebian(command=os.path.basename(argv[0]), prefix='',
                              usage='%prog [options] - add a new patch')
     parser.add_config_file_option(option_name="meta-closes", dest="meta_closes",
                       help="Meta tags for the bts close commands, default is '%(meta-closes)s'")
index e857b3e..87334f0 100644 (file)
@@ -51,7 +51,7 @@ class GbpOption(Option):
     TYPE_CHECKER['path'] = expand_path
     TYPE_CHECKER['tristate'] = check_tristate
 
-class GbpOptionParser(OptionParser):
+class GbpOptionParserCommon(OptionParser):
     """
     Handles commandline options and parsing of config files
     @ivar command: the gbp command we store the options for
@@ -68,9 +68,7 @@ class GbpOptionParser(OptionParser):
     @cvar config_files: list of config files we parse
     @type config_files: list
     """
-    defaults = { 'builder'         : 'debuild -i -I',
-                 'cleaner'         : 'debuild -d clean',
-                 'debian-branch'   : 'master',
+    defaults = { 'debian-branch'   : 'master',
                  'upstream-branch' : 'upstream',
                  'upstream-tree'   : 'TAG',
                  'pristine-tar'    : 'False',
@@ -327,4 +325,15 @@ class GbpOptionGroup(OptionGroup):
         neg_help = "negates '--%s%s'" % (self.parser.prefix, option_name)
         self.add_config_file_option(option_name="no-%s" % option_name, dest=dest, help=neg_help, action="store_false")
 
+
+class GbpOptionParserDebian(GbpOptionParserCommon):
+    """
+    Handles commandline options and parsing of config files for Debian tools
+    """
+    defaults = dict(GbpOptionParserCommon.defaults)
+    defaults.update( {
+                       'builder'            : 'debuild -i -I',
+                       'cleaner'            : 'debuild -d clean',
+                     } )
+
 # vim:et:ts=4:sw=4:et:sts=4:ai:set list listchars=tab\:»·,trail\:·:
index 327c398..3fd6917 100755 (executable)
@@ -29,7 +29,7 @@ import gbp.deb as du
 from gbp.command_wrappers import (Command,
                                   RunAtCommand, CommandExecFailed,
                                   RemoveTree, CatenateTarArchive)
-from gbp.config import (GbpOptionParser, GbpOptionGroup)
+from gbp.config import (GbpOptionParserDebian, GbpOptionGroup)
 from gbp.deb.git import (GitRepositoryError, DebianGitRepository)
 from gbp.deb.changelog import ChangeLog, NoChangeLogError, ParseChangeLogError
 from gbp.errors import GbpError
@@ -465,7 +465,7 @@ def parse_args(argv, prefix):
             args.append(arg)
 
     try:
-        parser = GbpOptionParser(command=os.path.basename(argv[0]), prefix=prefix)
+        parser = GbpOptionParserDebian(command=os.path.basename(argv[0]), prefix=prefix)
     except ConfigParser.ParsingError, err:
         gbp.log.err(err)
         return None, None, None
index 5dffbd0..ab2fc97 100755 (executable)
@@ -21,7 +21,7 @@
 
 import sys
 import os, os.path
-from gbp.config import (GbpOptionParser, GbpOptionGroup)
+from gbp.config import (GbpOptionParserCommon, GbpOptionGroup)
 from gbp.deb.git import DebianGitRepository
 from gbp.git import (GitRepository, GitRepositoryError)
 from gbp.command_wrappers import (Command, CommandExecFailed)
@@ -30,8 +30,8 @@ import gbp.log
 
 
 def parse_args (argv):
-    parser = GbpOptionParser(command=os.path.basename(argv[0]), prefix='',
-                             usage='%prog [options] repository - clone a remote repository')
+    parser = GbpOptionParserCommon(command=os.path.basename(argv[0]), prefix='',
+                                   usage='%prog [options] repository - clone a remote repository')
     branch_group = GbpOptionGroup(parser, "branch options", "branch tracking and layout options")
     parser.add_option_group(branch_group)
 
index d00963c..d6174e3 100644 (file)
@@ -28,7 +28,7 @@ import tty, termios
 import re
 from gbp.deb.changelog import ChangeLog, NoChangeLogError
 from gbp.command_wrappers import (CommandExecFailed, GitCommand)
-from gbp.config import (GbpOptionParser, GbpOptionGroup)
+from gbp.config import (GbpOptionParserDebian, GbpOptionGroup)
 from gbp.errors import GbpError
 from gbp.git import (GitRepositoryError, GitRepository)
 import gbp.log
@@ -146,8 +146,8 @@ def main(argv):
     retval = 0
     changelog = 'debian/changelog'
 
-    parser = GbpOptionParser(command=os.path.basename(argv[0]), prefix='',
-                             usage='%prog [options] - create a remote repository')
+    parser = GbpOptionParserDebian(command=os.path.basename(argv[0]), prefix='',
+                                   usage='%prog [options] - create a remote repository')
     branch_group = GbpOptionGroup(parser, "branch options", "branch layout and tracking options")
     branch_group.add_config_file_option(option_name="remote-url-pattern", dest="remote_url")
     parser.add_option_group(branch_group)
index 2ee988d..3a4a02a 100644 (file)
@@ -26,7 +26,7 @@ import subprocess
 import gbp.command_wrappers as gbpc
 import gbp.dch as dch
 import gbp.log
-from gbp.config import GbpOptionParser, GbpOptionGroup
+from gbp.config import GbpOptionParserDebian, GbpOptionGroup
 from gbp.errors import GbpError
 from gbp.deb import compare_versions
 from gbp.deb.git import GitRepositoryError, DebianGitRepository
@@ -332,8 +332,8 @@ def main(argv):
     version_change = {}
 
     try:
-        parser = GbpOptionParser(command=os.path.basename(argv[0]), prefix='',
-                                 usage='%prog [options] paths')
+        parser = GbpOptionParserDebian(command=os.path.basename(argv[0]), prefix='',
+                                       usage='%prog [options] paths')
     except ConfigParser.ParsingError, err:
         gbp.log.errror(err)
         return 1
index 6aed3c2..c5093fc 100644 (file)
@@ -32,7 +32,7 @@ from gbp.deb import (debian_version_chars,
 from gbp.deb.git import (DebianGitRepository, GitRepositoryError)
 from gbp.deb.changelog import ChangeLog
 from gbp.git import rfc822_date_to_git
-from gbp.config import GbpOptionParser, GbpOptionGroup, no_upstream_branch_msg
+from gbp.config import GbpOptionParserDebian, GbpOptionGroup, no_upstream_branch_msg
 from gbp.errors import GbpError
 import gbp.log
 
@@ -160,8 +160,8 @@ def set_bare_repo_options(options):
 
 def parse_args(argv):
     try:
-        parser = GbpOptionParser(command=os.path.basename(argv[0]), prefix='',
-                                 usage='%prog [options] /path/to/package.dsc')
+        parser = GbpOptionParserDebian(command=os.path.basename(argv[0]), prefix='',
+                                       usage='%prog [options] /path/to/package.dsc')
     except ConfigParser.ParsingError, err:
         gbp.log.err(err)
         return None, None
index 0446fda..6693acd 100644 (file)
@@ -32,7 +32,7 @@ from gbp.deb import (UpstreamSource,
                      upstreamversion_msg)
 from gbp.deb.changelog import ChangeLog, NoChangeLogError
 from gbp.deb.git import (GitRepositoryError, DebianGitRepository)
-from gbp.config import GbpOptionParser, GbpOptionGroup, no_upstream_branch_msg
+from gbp.config import GbpOptionParserDebian, GbpOptionGroup, no_upstream_branch_msg
 from gbp.errors import (GbpError, GbpNothingImported)
 import gbp.log
 
@@ -269,8 +269,8 @@ def set_bare_repo_options(options):
 
 def parse_args(argv):
     try:
-        parser = GbpOptionParser(command=os.path.basename(argv[0]), prefix='',
-                                 usage='%prog [options] /path/to/upstream-version.tar.gz | --uscan')
+        parser = GbpOptionParserDebian(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 None, None
old mode 100644 (file)
new mode 100755 (executable)
index 9193f2b..dbb4618
@@ -24,7 +24,7 @@ import shutil
 import subprocess
 import sys
 import tempfile
-from gbp.config import (GbpOptionParser, GbpOptionGroup)
+from gbp.config import (GbpOptionParserDebian, GbpOptionGroup)
 from gbp.git import (GitRepositoryError, GitRepository)
 from gbp.command_wrappers import (Command, GitCommand, RunAtCommand,
                                   CommandExecFailed)
@@ -337,8 +337,8 @@ def switch_pq(repo, current):
 def main(argv):
     retval = 0
 
-    parser = GbpOptionParser(command=os.path.basename(argv[0]), prefix='',
-                             usage="%prog [options] action - maintain patches on a patch queue branch\n"
+    parser = GbpOptionParserDebian(command=os.path.basename(argv[0]), prefix='',
+                                   usage="%prog [options] action - maintain patches on a patch queue branch\n"
         "Actions:\n"
         "  export         export the patch queue associated to the current branch\n"
         "                 into a quilt patch series in debian/patches/ and update the\n"
index d50ffc2..9c6f2c5 100755 (executable)
@@ -22,7 +22,7 @@
 import sys
 import os, os.path
 from gbp.command_wrappers import (Command, CommandExecFailed)
-from gbp.config import (GbpOptionParser, GbpOptionGroup)
+from gbp.config import (GbpOptionParserCommon, GbpOptionGroup)
 from gbp.errors import GbpError
 from gbp.git import GitRepositoryError
 from gbp.deb.git import DebianGitRepository
@@ -70,8 +70,8 @@ def fast_forward_branch(branch, repo, options):
 def main(argv):
     retval = 0
 
-    parser = GbpOptionParser(command=os.path.basename(argv[0]), prefix='',
-                             usage='%prog [options] - safely update a repository from remote')
+    parser = GbpOptionParserCommon(command=os.path.basename(argv[0]), prefix='',
+                                   usage='%prog [options] - safely update a repository from remote')
     branch_group = GbpOptionGroup(parser, "branch options", "branch update and layout options")
     parser.add_option_group(branch_group)
     branch_group.add_option("--force", action="store_true", dest="force", default=False,