|
- import sys
- import json
- import os
- import glob
- import zipfile
- import shutil
- import build
-
-
- PACKAGES_DIR = "../packages"
- MANIFESTS_DIR = "manifests"
- plugin_packages = sys.argv[1:]
- slugs = set()
-
-
- for package_src in plugin_packages:
- # Open ZIP
- z = zipfile.ZipFile(package_src)
- manifest_src = [f for f in z.namelist() if f.endswith("/plugin.json")][0]
-
- # Read manifest
- with z.open(manifest_src) as f:
- manifest = json.load(f)
-
- # Review manifest
- print(json.dumps(manifest, indent=" "))
- input()
-
- # Write manifest
- slug = os.path.split(manifest_src)[0]
- manifest_dest = os.path.join(MANIFESTS_DIR, slug + ".json")
- with open(manifest_dest, "w") as f:
- json.dump(manifest, f, indent=" ")
-
- # Copy package
- package_dest = os.path.join(PACKAGES_DIR, os.path.basename(package_src))
- build.system(f"cp '{package_src}' '{package_dest}'")
- build.system(f"touch '{package_dest}'")
-
- slugs.add(slug)
-
-
- # Upload packages
- build.system(f"cd {PACKAGES_DIR} && make upload")
-
- # Commit repository
- build.system("git add manifests")
- slugs_list = ", ".join(slugs)
- build.system(f"git commit -m 'Update manifest for {slugs_list}'")
- build.system("git push")
|