Save repo.json after we've downloaded it

This commit is contained in:
gandalf3
2017-06-29 19:55:35 -07:00
parent 9dfd58671e
commit 0b506d8759

View File

@@ -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():