Break out the config reading into its own method
This uses a dict to store the values and passes it around where needed (Amended to pass pep8) Change-Id: I498498e83c92a05742d2a7a8d44aff4452ee32b2
This commit is contained in:
39
git-review
39
git-review
@@ -277,7 +277,23 @@ def check_color_support():
|
|||||||
return _has_color
|
return _has_color
|
||||||
|
|
||||||
|
|
||||||
def check_remote(branch, remote):
|
def get_config():
|
||||||
|
"""Get the configuration options set in the .gitremote file, if present."""
|
||||||
|
"""Returns a hashmap with hostname, port and project."""
|
||||||
|
"""If there is no .gitremote file, default values will be used."""
|
||||||
|
config = dict(hostname=False, port='29418', project=False)
|
||||||
|
top_dir = run_command('git rev-parse --show-toplevel')
|
||||||
|
target_file = os.path.join(top_dir, ".gitreview")
|
||||||
|
if os.path.exists(target_file):
|
||||||
|
configParser = ConfigParser.ConfigParser(dict(port='29418'))
|
||||||
|
configParser.read(target_file)
|
||||||
|
config['hostname'] = configParser.get("gerrit", "host")
|
||||||
|
config['port'] = configParser.get("gerrit", "port")
|
||||||
|
config['project'] = configParser.get("gerrit", "project")
|
||||||
|
return config
|
||||||
|
|
||||||
|
|
||||||
|
def check_remote(branch, remote, hostname, port, project):
|
||||||
"""Check that a Gerrit Git remote repo exists, if not, set one."""
|
"""Check that a Gerrit Git remote repo exists, if not, set one."""
|
||||||
|
|
||||||
has_color = check_color_support()
|
has_color = check_color_support()
|
||||||
@@ -301,18 +317,8 @@ def check_remote(branch, remote):
|
|||||||
print output
|
print output
|
||||||
return
|
return
|
||||||
|
|
||||||
# Check for a .gitreview at the top of the repo with the gerrit location
|
if hostname == False or port == False or project == False:
|
||||||
top_dir = run_command('git rev-parse --show-toplevel')
|
# This means there was no .gitreview file
|
||||||
target_file = os.path.join(top_dir, ".gitreview")
|
|
||||||
|
|
||||||
if os.path.exists(target_file):
|
|
||||||
config = ConfigParser.ConfigParser(dict(port='29418'))
|
|
||||||
config.read(target_file)
|
|
||||||
hostname = config.get("gerrit", "host")
|
|
||||||
port = config.get("gerrit", "port")
|
|
||||||
project = config.get("gerrit", "project")
|
|
||||||
username = None
|
|
||||||
else:
|
|
||||||
print "No '.gitreview' file found in this repository."
|
print "No '.gitreview' file found in this repository."
|
||||||
print "We don't know where your gerrit is. Please manually create "
|
print "We don't know where your gerrit is. Please manually create "
|
||||||
print "a remote named gerrit and try again."
|
print "a remote named gerrit and try again."
|
||||||
@@ -320,7 +326,7 @@ def check_remote(branch, remote):
|
|||||||
|
|
||||||
# Gerrit remote not present, try to add it
|
# Gerrit remote not present, try to add it
|
||||||
try:
|
try:
|
||||||
add_remote(username, hostname, port, project)
|
add_remote(None, hostname, port, project)
|
||||||
except:
|
except:
|
||||||
print sys.exc_info()[2]
|
print sys.exc_info()[2]
|
||||||
print "We don't know where your gerrit is. Please manually create "
|
print "We don't know where your gerrit is. Please manually create "
|
||||||
@@ -540,6 +546,8 @@ to ensure proper behavior with gerrit. Thanks!
|
|||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
|
||||||
|
config = get_config()
|
||||||
|
|
||||||
usage = "git review [OPTIONS] ... [BRANCH]"
|
usage = "git review [OPTIONS] ... [BRANCH]"
|
||||||
parser = argparse.ArgumentParser(usage=usage, description=COPYRIGHT)
|
parser = argparse.ArgumentParser(usage=usage, description=COPYRIGHT)
|
||||||
|
|
||||||
@@ -593,7 +601,8 @@ def main():
|
|||||||
status = 0
|
status = 0
|
||||||
|
|
||||||
needs_update = latest_is_newer()
|
needs_update = latest_is_newer()
|
||||||
check_remote(branch, remote)
|
check_remote(branch, remote,
|
||||||
|
config['hostname'], config['port'], config['project'])
|
||||||
|
|
||||||
if options.download is not None:
|
if options.download is not None:
|
||||||
print_exit_message(download_review(options.download, branch),
|
print_exit_message(download_review(options.download, branch),
|
||||||
|
Reference in New Issue
Block a user