diff options
author | weichenwu <weichen.wu@canonical.com> | 2022-12-14 15:46:45 +0800 |
---|---|---|
committer | weichenwu <weichen.wu@canonical.com> | 2022-12-16 15:49:35 +0800 |
commit | 3805488312fb74303ef963674c32c3cba99fe7a6 (patch) | |
tree | 4dd896a1ac5e2d8783a66aa1c7c405c9cd18d881 /bin | |
parent | e0574cdf2d49793d5b9036eafeaefdb34438917b (diff) |
modified: using get-oem-info.sh to capture platform name
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/check-oem-package-source.py | 90 |
1 files changed, 23 insertions, 67 deletions
diff --git a/bin/check-oem-package-source.py b/bin/check-oem-package-source.py index ab55dea..1bcf155 100755 --- a/bin/check-oem-package-source.py +++ b/bin/check-oem-package-source.py @@ -52,20 +52,24 @@ def issue_cmd(cmd): def _get_platform_name(): - platform_cmd = "ubuntu-report show | grep DCD" - platform_pattern = r"canonical-(\w*-\w*)-\S*\+([^+ ]*)\+\S*" - ret_code, dct_data = issue_cmd(platform_cmd) - if ret_code != 0: - raise SystemExit("Failed to get DCD data") + platform_cmd = "get-oem-info.sh --platform-codename" + ret_code, platform = issue_cmd(platform_cmd) + platform = platform.strip() + + if not platform: + raise SystemExit("Cannot get correct platform name") - filter_result = re.search(platform_pattern, dct_data) - if filter_result: - project, platform = filter_result.groups() - else: - raise SystemExit("Failed to filter out the project or platform name") + return platform + +def _get_project_name(): + project_cmd = "get-oem-info.sh --oem-codename" + ret_code, project = issue_cmd(project_cmd) + project = project.strip() - return project, platform + if project not in ["somerville", "sutton", "stella"]: + raise SystemExit(f"Unknown project name: {project}") + return project def _get_code_name(): codename_cmd = "lsb_release -cs" @@ -76,57 +80,13 @@ def _get_code_name(): return codename - -def gen_oem_meta_name(project, platform, factory, meta_type): - project_code = platform_code = None - - if project in ["oem-sutton", "oem-stella"]: - # laptop platform format: sutton-focal-amd64 or sutton-newell-focal-amd64 - # pc platform format: pc-stella-meric- - # need to trim if pc- is exists. - if platform.startswith("pc-"): - platform = platform[3:].rsplit("-", 2) - else: - platform = platform.rsplit("-", 2) - - if len(platform) != 3: - raise SystemExit(f"Unexpected platform format: {platform}") - # Look into /etc/apt/sources.list.d/ - if platform[0] == "sutton": - pattern = r"^(oem-{}.*)-(\S*)-meta\.list$".format(platform[0]) - else: - pattern = r"^(oem-{})-(\S*)-meta\.list$".format( - platform[0].replace("-", ".", 1)) - - files = os.listdir(DEFAULT_SOURCE_DIR) - for filename in files: - result = re.search(pattern, filename) - if result: - project_code = result.groups()[0] - platform_code = result.groups()[1] - break - elif project in ["oem-somerville"]: - project_code = project - platform_code = "" - # Look into /etc/apt/sources.list.d/ - pattern = r"^{}-(\S*)-meta\.list$".format(project) - files = os.listdir(DEFAULT_SOURCE_DIR) - for filename in files: - result = re.search(pattern, filename) - if result: - platform_code = result.groups()[0] - break - else: - raise SystemExit("Unknown project name: ") - - if (meta_type == "platform" and project_code is not None and - platform_code is not None): - oem_metaname = "{}{}-{}-meta".format( - project_code, factory, platform_code) - elif meta_type == "project" and project_code is not None: - oem_metaname = "{}{}-meta".format(project_code, factory) - else: - raise SystemExit("Failed to generate oem-meta name") +def gen_oem_meta_name(factory, meta_type): + project = _get_project_name() + if meta_type == "platform": + platform = _get_platform_name() + oem_metaname = "oem-{}{}-{}-meta".format(project, factory, platform) + elif meta_type == "project": + oem_metaname = "oem-{}{}-meta".format(project, factory) return oem_metaname @@ -424,12 +384,8 @@ def main(): args = _register_arguments() codename = _get_code_name() if args.meta == "": - project, platform = _get_platform_name() factory_pattern = "-factory" if args.factory_meta else "" - oem_metaname = gen_oem_meta_name(project, - platform, - factory_pattern, - args.gen_meta_type) + oem_metaname = gen_oem_meta_name(factory_pattern, args.gen_meta_type) else: # User need to provided a package name oem_metaname = args.meta |