]> Git Repo - pico-vscode.git/blob - scripts/genCache.py
Add rp2350 support
[pico-vscode.git] / scripts / genCache.py
1 import json
2 import os
3 import sys
4
5 import requests
6 import js2py
7
8
9 dir_path = os.path.dirname(os.path.realpath(__file__))
10 os.chdir(f"{dir_path}/..")
11
12 # Extract js for variables
13 with open("dist/extension.cjs", "r") as f:
14     keep = False
15     txt = ""
16     for line in f.readlines():
17         if "const EXT_USER_AGENT =" in line:
18             keep = True
19         elif "getAuthorizationHeaders" in line:
20             keep = False
21         elif "const CURRENT_DATA_VERSION =" in line:
22             keep = True
23         
24         if keep:
25             txt += line
26
27         if "const CURRENT_DATA_VERSION =" in line:
28             keep = False
29
30 parsed = js2py.translate_js(txt)
31 with open("tmp.py", "w") as f:
32     f.write(parsed)
33 sys.path.append(os.getcwd())
34
35 import tmp
36
37 stuff = tmp.var.to_python()
38
39 # stuff.GithubRepository has conversions in both directions, so is twice the size
40 num_repos = 0
41 for _ in stuff.GithubRepository:
42     num_repos += 0.5
43 num_repos = int(num_repos)
44 assert num_repos == 4
45 print("Num repos", num_repos)
46
47
48 # Only provide data for these versions
49 versions = [
50     ["1.5.1", "2.0.0"],
51     ["v3.28.6", "v3.29.6"],
52     ["v1.12.1"],
53     ["v2.0.0-0"],
54 ]
55
56 headers = {
57     "X-GitHub-Api-Version": "2022-11-28",
58     "User-Agent": stuff.EXT_USER_AGENT,
59     "Authorization": f"Bearer {os.environ['GITHUB_TOKEN']}"
60 }
61
62 ret = {}
63 for repo in range(num_repos):
64     ret[f"githubApiCache-{repo}-0"] = versions[repo]
65
66     for version in versions[repo]:
67         owner = stuff.ownerOfRepository(repo)
68         name = stuff.repoNameOfRepository(repo)
69         x = requests.get(
70             f"{stuff.GITHUB_API_BASE_URL}/repos/{owner}/{name}/releases/tags/{version}",
71             headers=headers
72         )
73         data = json.loads(x.content)
74         assets = []
75         for asset in data["assets"]:
76             assets.append({
77                 "id": asset["id"],
78                 "name": asset["name"],
79                 "browser_download_url": asset["browser_download_url"]
80             })
81         data = {
82             "assets": assets,
83             "assetsUrl": data["assets_url"]
84         }
85
86         ret[f"githubApiCache-{repo}-1-{version}"] = data
87         
88
89 for k, v in ret.items():
90     idx = int(k.split('-')[1])
91     print(f"{k} is {stuff.GithubRepository[idx]}")
92     if isinstance(v, list):
93         print(v)
94     else:
95         print(v["assets"][0])
96
97 with open(f"data/{stuff.CURRENT_DATA_VERSION}/github-cache.json", "w") as f:
98     json.dump(ret, f, indent=2)
This page took 0.029499 seconds and 4 git commands to generate.