Skip to content

Instantly share code, notes, and snippets.

@pebbie
Created January 6, 2022 00:57
Show Gist options
  • Save pebbie/13b8131a54e493255c20cdf54f231904 to your computer and use it in GitHub Desktop.
Save pebbie/13b8131a54e493255c20cdf54f231904 to your computer and use it in GitHub Desktop.

Revisions

  1. pebbie created this gist Jan 6, 2022.
    56 changes: 56 additions & 0 deletions camp4northstar_spawn.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,56 @@
    import os
    import os.path as path
    import sys
    import traceback
    import json
    import zipfile
    from urllib.request import urlopen
    import shutil
    import argparse


    def main(args):
    dl_dir = args.temp_dir
    out_dir = args.output_dir
    owner = 'R2Northstar'
    repo = 'Northstar'
    base_url = f"https://api.github.com/repos/{owner}/{repo}/releases"

    if not path.exists(dl_dir):
    os.makedirs(dl_dir)
    if not path.exists(out_dir):
    os.makedirs(out_dir)
    try:
    print(f'checking releases from {owner}/{repo}')
    with urlopen(base_url) as response:
    if response.status == 200:
    response_content = response.read()
    jd = json.loads(response_content)

    dl_name = jd[0]['assets'][0]['name']
    dl_size = jd[0]['assets'][0]['size']
    dl_url = jd[0]['assets'][0]['browser_download_url']

    print('downloading %s ' % dl_url)
    with urlopen(dl_url) as response:
    if response.status == 200:
    with open(path.join(dl_dir, dl_name), 'wb') as zipball:
    shutil.copyfileobj(response, zipball)

    print('extracting %s ' % dl_name)
    if os.path.exists(path.join(dl_dir, dl_name)):
    with zipfile.ZipFile(path.join(dl_dir, dl_name), 'r') as zip_ref:
    zip_ref.extractall(out_dir)
    except:
    print('FAIL:something is wrong. exiting')
    print(traceback.format_exc())


    if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('-temp_dir', default='r2tmp')
    parser.add_argument('-output_dir', default='Titanfall2')

    args = parser.parse_args()

    main(args)