summaryrefslogtreecommitdiff
path: root/bin
diff options
authorweichenwu <weichen.wu@canonical.com>2022-12-14 15:46:45 +0800
committerweichenwu <weichen.wu@canonical.com>2022-12-16 15:49:35 +0800
commit3805488312fb74303ef963674c32c3cba99fe7a6 (patch)
tree4dd896a1ac5e2d8783a66aa1c7c405c9cd18d881 /bin
parente0574cdf2d49793d5b9036eafeaefdb34438917b (diff)
modified: using get-oem-info.sh to capture platform name
Diffstat (limited to 'bin')
-rwxr-xr-xbin/check-oem-package-source.py90
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