bisect-kit: support config file and plugins
Besides command line arguments and environment variables, users can set
common options in config file.
The main purpose of plugin hook mechanism is for patching functions by
private implementations. For example, fetching build artifacts from
internal servers. This feature is necessary for my latter commits of
android bisector.
BUG=chromium:776314
Change-Id: I81e47398cfee591c5c810479d4824857599f5d53
diff --git a/switch_git.py b/switch_git.py
index 3be9312..f8f449b 100755
--- a/switch_git.py
+++ b/switch_git.py
@@ -19,6 +19,7 @@
from bisect_kit import cli
from bisect_kit import common
+from bisect_kit import configure
from bisect_kit import git_util
from bisect_kit import util
@@ -26,27 +27,27 @@
def create_argument_parser():
- defaults = util.DefaultConfig()
parser = argparse.ArgumentParser()
- common.add_logging_arguments(parser, defaults)
+ common.add_common_arguments(parser)
parser.add_argument(
'git_rev',
nargs='?',
type=git_util.argtype_git_rev,
metavar='GIT_REV',
- default=defaults.get('GIT_REV', ''),
+ default=configure.get('GIT_REV', ''),
help='Git revision id')
parser.add_argument(
'--git_repo',
type=cli.argtype_dir_path,
metavar='GIT_REPO',
- default=defaults.get('GIT_REPO'),
+ default=configure.get('GIT_REPO'),
help='Git repository path')
return parser
def main(args=None):
+ common.init()
parser = create_argument_parser()
opts = parser.parse_args(args)
common.config_logging(opts)