BaseTools: add repo name option to SetupGit.py

Allow users who didn't clone one of the TianoCore repos from a
canonical URL to specify the name of the repo (edk2, edk2-platforms
or edk2-non-osi) when running SetupGit.py to allow them to configure
their repo properly.

The new option is:

  -n repo, --name repo  set the repo name to configure for, if not
                        detected automatically

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
This commit is contained in:
Rebecca Cran 2020-05-02 04:00:44 +08:00 committed by mergify[bot]
parent 8293e6766a
commit 3a3713e62c
1 changed files with 9 additions and 3 deletions

View File

@ -106,10 +106,11 @@ def fuzzy_match_repo_url(one, other):
return False return False
def get_upstream(url): def get_upstream(url, name):
"""Extracts the dict for the current repo origin.""" """Extracts the dict for the current repo origin."""
for upstream in UPSTREAMS: for upstream in UPSTREAMS:
if fuzzy_match_repo_url(upstream['repo'], url): if (fuzzy_match_repo_url(upstream['repo'], url) or
upstream['name'] == name):
return upstream return upstream
print("Unknown upstream '%s' - aborting!" % url) print("Unknown upstream '%s' - aborting!" % url)
sys.exit(3) sys.exit(3)
@ -143,6 +144,11 @@ if __name__ == '__main__':
help='overwrite existing settings conflicting with program defaults', help='overwrite existing settings conflicting with program defaults',
action='store_true', action='store_true',
required=False) required=False)
PARSER.add_argument('-n', '--name', type=str, metavar='repo',
choices=['edk2', 'edk2-platforms', 'edk2-non-osi'],
help='set the repo name to configure for, if not '
'detected automatically',
required=False)
PARSER.add_argument('-v', '--verbose', PARSER.add_argument('-v', '--verbose',
help='enable more detailed output', help='enable more detailed output',
action='store_true', action='store_true',
@ -156,7 +162,7 @@ if __name__ == '__main__':
URL = REPO.remotes.origin.url URL = REPO.remotes.origin.url
UPSTREAM = get_upstream(URL) UPSTREAM = get_upstream(URL, ARGS.name)
if not UPSTREAM: if not UPSTREAM:
print("Upstream '%s' unknown, aborting!" % URL) print("Upstream '%s' unknown, aborting!" % URL)
sys.exit(7) sys.exit(7)