Save repo.json after we've downloaded it
This commit is contained in:
@@ -22,20 +22,43 @@ class BadAddon(Exception):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def fetch(url, pipe):
|
def fetch(url, pipe):
|
||||||
|
# we have to explicitly close the end of the pipe we are NOT using,
|
||||||
|
# otherwise no exception will be generated when the other process closes its end.
|
||||||
pipe[0].close()
|
pipe[0].close()
|
||||||
|
|
||||||
|
local_repo_path = pathlib.Path(__file__).parent / 'packages'
|
||||||
|
local_repo_path.mkdir(exist_ok=True)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# TODO: do conditional request
|
# TODO: do conditional request
|
||||||
re = requests.get(url)
|
re = requests.get(url)
|
||||||
# print(re.json())
|
|
||||||
pipe[1].send(re.headers)
|
pipe[1].send(re.status_code)
|
||||||
|
|
||||||
|
repo = re.json()
|
||||||
|
repo['etag'] = re.headers.get('etag')
|
||||||
|
repo['last-modified'] = re.headers.get('last-modified')
|
||||||
|
|
||||||
|
# just stick it here for now..
|
||||||
|
dump_repo(local_repo_path, repo)
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
pipe[1].close()
|
pipe[1].close()
|
||||||
|
|
||||||
|
|
||||||
|
# class Package:
|
||||||
# class Package():
|
|
||||||
# def __init__(self):
|
# def __init__(self):
|
||||||
|
# self.bl_info = None
|
||||||
|
# self.url = None
|
||||||
|
# self.type = None
|
||||||
|
#
|
||||||
|
# class Repository:
|
||||||
|
# def __init__(self, name):
|
||||||
|
# self.name = name
|
||||||
|
# self.packages = None
|
||||||
|
#
|
||||||
|
# def json(self):
|
||||||
|
# return json.dumps(self.__dict__)
|
||||||
|
|
||||||
def parse_blinfo(source: str) -> dict:
|
def parse_blinfo(source: str) -> dict:
|
||||||
"""Parse a python file and return its bl_info dict, if there is one (else return None)"""
|
"""Parse a python file and return its bl_info dict, if there is one (else return None)"""
|
||||||
@@ -117,9 +140,11 @@ def make_repo(repopath: pathlib.Path):
|
|||||||
|
|
||||||
repo_data['packages'] = package_data
|
repo_data['packages'] = package_data
|
||||||
|
|
||||||
with (repopath / 'repo.json').open('w', encoding='utf-8') as repo_file:
|
dump_repo(repopath, repo_data)
|
||||||
json.dump(repo_data, repo_file, indent=4, sort_keys=True)
|
|
||||||
|
|
||||||
|
def dump_repo(repo_path: pathlib.Path, repo_data: dict):
|
||||||
|
with (repo_path / 'repo.json').open('w', encoding='utf-8') as repo_file:
|
||||||
|
json.dump(repo_data, repo_file, indent=4, sort_keys=True)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
Reference in New Issue
Block a user