First working generation (woohoo)
This commit is contained in:
		| @ -52,7 +52,7 @@ def gen_apps_json(): | ||||
|         chdir(app_path) | ||||
|  | ||||
|         output = check_output("git tag --list", shell=True) | ||||
|         tags = output.strip().decode("utf-8") | ||||
|         tags = output.decode("utf-8").strip().split() | ||||
|  | ||||
|         if not tags: | ||||
|             continue | ||||
| @ -61,16 +61,21 @@ def gen_apps_json(): | ||||
|             apps_json[app] = { | ||||
|                 "category": "apps", | ||||
|                 "repository": f"https://git.autonomic.zone/coop-cloud/{app}.git", | ||||
|                 "features": get_app_features(app_path), | ||||
|                 "versions": get_app_versions(app_path), | ||||
|                 "features": get_app_features(app_path, tag), | ||||
|                 "versions": get_app_versions(app_path, tag), | ||||
|             } | ||||
|  | ||||
|     return apps_json | ||||
|  | ||||
|  | ||||
| def get_app_features(app_path): | ||||
| def get_app_features(app_path, tag): | ||||
|     print(f"Gathering features for {app_path}, tag: {tag}") | ||||
|  | ||||
|     features = {} | ||||
|  | ||||
|     chdir(app_path) | ||||
|     run(f"git checkout {tag}", shell=True) | ||||
|  | ||||
|     with open(f"{app_path}/README.md", "r") as handle: | ||||
|         contents = handle.read() | ||||
|  | ||||
| @ -87,37 +92,35 @@ def get_app_features(app_path): | ||||
|             value = match.split(":")[-1].replace("*", "").strip() | ||||
|         features[title] = value | ||||
|  | ||||
|     run(f"git checkout HEAD", shell=True) | ||||
|     return features | ||||
|  | ||||
|  | ||||
| def get_app_versions(app_path): | ||||
| def get_app_versions(app_path, tag): | ||||
|     print(f"Gathering versions for {app_path}, tag: {tag}") | ||||
|  | ||||
|     versions = [] | ||||
|  | ||||
|     chdir(app_path) | ||||
|     run(f"git checkout {tag}", shell=True) | ||||
|  | ||||
|     tags = check_output(f"git tag --list", shell=True).decode("utf-8").strip().split() | ||||
|     services_command = "yq e '.services | keys | .[]' compose*.yml" | ||||
|     services = check_output(services_command, shell=True).decode("utf-8").split() | ||||
|  | ||||
|     for tag in tags: | ||||
|         run(f"git checkout {tag}", shell=True) | ||||
|     for service in services: | ||||
|         images_command = f"yq e '.services.{service}.image' compose*.yml" | ||||
|         images = check_output(images_command, shell=True).decode("utf-8").split() | ||||
|  | ||||
|         services_command = "yq e '.services | keys | .[]' compose*.yml" | ||||
|         services = check_output(services_command, shell=True).decode("utf-8").split() | ||||
|         for image in images: | ||||
|             if image in ("null", "---"): | ||||
|                 continue | ||||
|  | ||||
|         for service in services: | ||||
|             images_command = f"yq e '.services.{service}.image' compose*.yml" | ||||
|             images = check_output(images_command, shell=True).decode("utf-8").split() | ||||
|  | ||||
|             for image in images: | ||||
|                 if image in ("null", "---"): | ||||
|                     continue | ||||
|  | ||||
|                 digest_command = f"skopeo inspect docker://{image} | jq '.Digest'" | ||||
|                 output = check_output(digest_command, shell=True).decode("utf-8") | ||||
|                 digest = output.strip().split(":")[-1][:8] | ||||
|                 versions.append( | ||||
|                     {service: {"image": image, "tag": tag, "digest": digest}} | ||||
|                 ) | ||||
|             digest_command = f"skopeo inspect docker://{image} | jq '.Digest'" | ||||
|             output = check_output(digest_command, shell=True).decode("utf-8") | ||||
|             digest = output.strip().split(":")[-1][:8] | ||||
|             versions.append({service: {"image": image, "tag": tag, "digest": digest}}) | ||||
|  | ||||
|     run(f"git checkout HEAD", shell=True) | ||||
|     return versions | ||||
|  | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user