def main(): # initalize state array state = [] with io.open("flyingcarpet.portable.ghstate", "a+") as f: f.seek(0) # why I have to do this is unknown for _, line in enumerate(f): state.append(line) f = io.open("flyingcarpet.portable.ghstate", "a+") # connect to github api gh = Github(os.environ['GH_TOKEN']) flyingcarpet = gh.get_repo("spieglt/flyingcarpet") for rel in flyingcarpet.get_releases(): pushed = False for i in range(len(state)): if str(state[i]).replace("\n", "") == str(rel.id): pushed = True break else: continue if not pushed: asset = get_correct_release_asset(rel.get_assets(), "CLI.Windows", None) if asset == None: print("no compatible releases, skipping...") f.write(str(rel.id)+"\n") f.flush() continue url = asset.browser_download_url fname = asset.name subprocess.call(["wget", url, "--output-document", "flyingcarpet-cli.zip"]) chksum = checksum.get_for_file("flyingcarpet-cli.zip", "sha512") os.remove("flyingcarpet-cli.zip") tempdir = tempfile.mkdtemp() find_and_replace_templates("flyingcarpet.portable", tempdir, rel.tag_name.replace("v", ""), rel.tag_name, url, chksum, fname, None, None, None, rel.body.replace("<", "<") .replace(">", ">") .replace("&", "&") .replace("\u200b", "")) # zero-width space abort_on_nonzero(subprocess.call(["choco", "pack", Path(tempdir)/"flyingcarpet.portable.nuspec"])) f.write(str(rel.id)+"\n") f.flush() else: continue f.close()
def main(): # initalize state array state = [] with io.open("gallery-dl.ghstate", "a+") as f: f.seek(0) # why I have to do this is unknown for _, line in enumerate(f): state.append(line) f = io.open("gallery-dl.ghstate", "a+") # connect to github api gh = Github(os.environ['GH_TOKEN']) gallerydl = gh.get_repo("mikf/gallery-dl") for rel in gallerydl.get_releases(): pushed = False for i in range(len(state)): if str(state[i]).replace("\n", "") == str(rel.id): pushed = True break else: continue if not pushed: asset = get_correct_release_asset(rel.get_assets(), ".exe", ".sig") if asset is None: print("no compatible releases, skipping...") f.write(str(rel.id)+"\n") f.flush() continue url = asset.browser_download_url fname = asset.name subprocess.call(["wget", url, "--output-document", fname]) chksum = checksum.get_for_file(fname, "sha512") tempdir = tempfile.mkdtemp() find_and_replace_templates("gallery-dl", tempdir, rel.tag_name.strip("v") .replace("-dev.1", "-dev1"), rel.tag_name, url, chksum, fname, None, None, None, rel.body.replace("<", "<") .replace(">", ">")) os.rename(fname, os.path.join(tempdir, "tools", fname)) abort_on_nonzero(subprocess.call(["choco", "pack", Path(tempdir)/"gallery-dl.nuspec"])) f.write(str(rel.id)+"\n") f.flush() else: continue f.close()
def main(): logger = logging.getLogger('ModernFlyouts GitHub Releases') logger.setLevel(logging.DEBUG) for rel in on_new_git_release("modernflyouts", "shankarbus/modernflyouts"): # correlate assets asset = get_correct_release_asset(rel.get_assets(), ".Msixbundle", None) if asset is None: logger.warn( "Versioned release missing required assets, therefore, ineligible for packaging, skipping." ) continue # download and hash url = asset.browser_download_url fname = asset.name subprocess.call(["wget", url]) chksum = checksum.get_for_file(fname, "sha512") # certificate download alturl = "https://github.com/ShankarBUS/ModernFlyouts/releases/download/v0.5.0/ModernFlyouts.Package_0.5.0.0_AnyCPU.cer" altfname = "ModernFlyouts.Package_0.5.0.0_AnyCPU.cer" abort_on_nonzero( subprocess.call([ "wget", alturl, "--output-document", "ModernFlyouts.Package_0.5.0.0_AnyCPU.cer" ])) # assemble information relnotes = rel.body if rel.body is None: relnotes = "" else: relnotes = relnotes.replace("<", "<").replace( ">", ">").replace("&", "&").replace("\u200b", "") # zero-width space version = rel.tag_name.replace("v", "") gittag = rel.tag_name d = dict(version=version, tag=gittag, checksum=chksum, fname=fname, url=url, altfname=altfname, notes=relnotes) # template and pack tmpdir = tempfile.mkdtemp() find_and_replace_templates_new("modernflyouts", tmpdir, d) os.rename(fname, os.path.join(tmpdir, "tools", fname)) os.rename(altfname, os.path.join(tmpdir, "tools", altfname)) abort_on_nonzero( subprocess.call( ["choco", "pack", Path(tmpdir) / "modernflyouts.nuspec"]))
def main(): # initalize state array state = [] with io.open("rust-analyzer.ghstate", "a+") as f: f.seek(0) # why I have to do this is unknown for _, line in enumerate(f): state.append(line) f = io.open("rust-analyzer.ghstate", "a+") # connect to github api gh = Github(os.environ['GH_TOKEN']) rustlsp = gh.get_repo("rust-analyzer/rust-analyzer") for rel in rustlsp.get_releases(): pushed = False for i in range(len(state)): if str(state[i]).replace("\n", "") == str(rel.id): pushed = True break else: continue if not pushed: asset = get_correct_release_asset(rel.get_assets(), "x86_64-pc-windows-msvc.gz", None) if asset is None: continue url = asset.browser_download_url subprocess.call(["wget", url]) chksum = checksum.get_for_file(asset.name, "sha512") abort_on_nonzero(subprocess.call(["7z", "e", asset.name])) os.remove(asset.name) fname = "rust-analyzer.exe" # override file name os.rename(asset.name.split(".")[0], fname) tempdir = tempfile.mkdtemp() if "nightly" in rel.title: t = rel.published_at find_and_replace_templates( "rust-analyzer", tempdir, "{}.{}.{}-nightly".format(t.year, t.month, t.day), rel.tag_name, url, chksum, fname, None, None, None, None) else: find_and_replace_templates("rust-analyzer", tempdir, rel.title.replace("-", "."), rel.tag_name, url, chksum, fname, None, None, None, None) os.rename(fname, os.path.join(tempdir, "tools", fname)) abort_on_nonzero( subprocess.call( ["choco", "pack", Path(tempdir) / "rust-analyzer.nuspec"])) f.write(str(rel.id) + "\n") f.flush() else: continue f.close()
def main(): # initalize state array state = [] with io.open("omnisharp.ghstate", "a+") as f: f.seek(0) # why I have to do this is unknown for _, line in enumerate(f): state.append(line) f = io.open("omnisharp.ghstate", "a+") # connect to github api gh = Github(os.environ['GH_TOKEN']) repo = gh.get_repo("OmniSharp/omnisharp-roslyn") for rel in repo.get_releases(): pushed = False for i in range(len(state)): if str(state[i]).replace("\n", "") == str(rel.id): pushed = True break else: continue if not pushed: asset = get_correct_release_asset(rel.get_assets(), "win-x86.zip", "http") asset64 = get_correct_release_asset(rel.get_assets(), "win-x64.zip", "http") if asset == None or asset64 == None: print("no compatible releases, skipping...") f.write(str(rel.id) + "\n") f.flush() continue tempdir = tempfile.mkdtemp() url = asset.browser_download_url fname = asset.name url64 = asset64.browser_download_url fname64 = asset64.name subprocess.call(["wget", url, "--output-document", fname]) chksum = checksum.get_for_file(fname, "sha512") subprocess.call(["wget", url64, "--output-document", fname64]) chksum64 = checksum.get_for_file(fname64, "sha512") find_and_replace_templates( "omnisharp", tempdir, rel.tag_name.replace("v", ""), rel.tag_name, url, chksum, fname, url64, chksum64, fname64, rel.body.replace("<", "<").replace(">", ">").replace( "&", "&").replace("\u200b", "")) # zero-width space os.rename(fname, os.path.join(tempdir, "tools", fname)) os.rename(fname64, os.path.join(tempdir, "tools", fname64)) abort_on_nonzero( subprocess.call( ["choco", "pack", Path(tempdir) / "omnisharp.nuspec"])) f.write(str(rel.id) + "\n") f.flush() else: continue f.close()
def main(): pkgname = "terraform-lsp" # initalize state array state = [] with io.open(pkgname + ".ghstate", "a+") as f: f.seek(0) # why I have to do this is unknown for _, line in enumerate(f): state.append(line) f = io.open(pkgname + ".ghstate", "a+") # connect to github api gh = Github(os.environ['GH_TOKEN']) repo = gh.get_repo("juliosueiras/terraform-lsp") for rel in repo.get_releases(): pushed = False for i in range(len(state)): if str(state[i]).replace("\n", "") == str(rel.id): pushed = True break else: continue if not pushed: asset = get_correct_release_asset(rel.get_assets(), "windows_amd64", None) if asset is None: continue url = asset.browser_download_url subprocess.call(["wget", url, "--output-document", "tflsp.tar.gz"]) chksum = checksum.get_for_file("tflsp.tar.gz", "sha512") os.remove("tflsp.tar.gz") tempdir = tempfile.mkdtemp() print(tempdir) fname = asset.name relnotes = rel.body if rel.body is None: relnotes = "" else: relnotes = relnotes.replace("<", "<").replace( ">", ">").replace("&", "&").replace("\u200b", "") # zero-width space find_and_replace_templates(pkgname, tempdir, rel.title.replace("v", ""), rel.tag_name, url, chksum, fname, None, None, None, relnotes) abort_on_nonzero( subprocess.call( ["choco", "pack", Path(tempdir) / (pkgname + ".nuspec")])) f.write(str(rel.id) + "\n") f.flush() else: continue f.close()
def main(): # initalize state array state = [] with io.open("legendary.ghstate", "a+") as f: f.seek(0) # why I have to do this is unknown for _, line in enumerate(f): state.append(line) f = io.open("legendary.ghstate", "a+") # connect to github api gh = Github(os.environ['GH_TOKEN']) repo = gh.get_repo("derrod/legendary") for rel in repo.get_releases(): pushed = False for i in range(len(state)): if str(state[i]).replace("\n", "") == str(rel.id): pushed = True break else: continue if not pushed: asset = get_correct_release_asset(rel.get_assets(), "legendary.exe", ".deb") if asset is None: continue url = asset.browser_download_url fname = asset.name subprocess.call(["wget", url, "--output-document", fname]) chksum = checksum.get_for_file(fname, "sha512") tempdir = tempfile.mkdtemp() relnotes = rel.body if rel.body is None: relnotes = "" else: relnotes = relnotes.replace("<", "<").replace( ">", ">").replace("&", "&").replace("\u200b", "") # zero-width space find_and_replace_templates("legendary", tempdir, rel.tag_name.replace("v", ""), rel.tag_name, url, chksum, fname, None, None, None, relnotes) os.rename(fname, os.path.join(tempdir, "tools", fname)) abort_on_nonzero( subprocess.call( ["choco", "pack", Path(tempdir) / "legendary.nuspec"])) f.write(str(rel.id) + "\n") f.flush() else: continue f.close()
def main(): logger = logging.getLogger("Monolith GitHub Releases") logger.setLevel(logging.DEBUG) for rel in on_new_git_release("monolith", "Y2Z/monolith"): # correlate assets asset = get_correct_release_asset(rel.get_assets(), "monolith.exe", None) if asset is None: logger.warn( "Versioned release missing required assets, therefore, ineligible for packaging, skipping." ) continue # download, and hash url = asset.browser_download_url fname = asset.name abort_on_nonzero(subprocess.call(["wget", url, "--output-document", fname])) chksum = checksum.get_for_file(fname, "sha512") # assemble information relnotes = rel.body if rel.body is None: relnotes = "" else: relnotes = ( relnotes.replace("<", "<") .replace(">", ">") .replace("&", "&") .replace("\u200b", "") ) # zero-width space version = rel.tag_name.strip("v").replace("-", ".") gittag = rel.tag_name d = dict( version=version, tag=gittag, checksum=chksum, fname=fname, url=url, notes=relnotes, ) # template and pack tmpdir = tempfile.mkdtemp() find_and_replace_templates_new("monolith", tmpdir, d) # HACK: Python is dumb and won't recursively create directories sometimes, why... os.mkdir(Path(tmpdir) / "tools/x64") os.rename(fname, os.path.join(tmpdir, "tools", "x64", "monolith.exe")) abort_on_nonzero( subprocess.call(["choco", "pack", Path(tmpdir) / "monolith.nuspec"]) )
def main(): logger = logging.getLogger('Nyrna GitHub Releases') logger.setLevel(logging.DEBUG) for rel in on_new_git_release("nyrna", "merrit/nyrna"): # correlate assets asset = get_correct_release_asset(rel.get_assets(), "windows-installer.exe", ".zip") if asset is None: logger.warn( "Versioned release missing required assets, therefore, ineligible for packaging, skipping." ) continue # download and hash url = asset.browser_download_url fname = asset.name abort_on_nonzero( subprocess.call(["wget", url, "--output-document", fname])) chksum = checksum.get_for_file(fname, "sha512") fname = asset.name # assemble information relnotes = rel.body if rel.body is None: relnotes = "" else: relnotes = relnotes.replace("<", "<").replace( ">", ">").replace("&", "&").replace("\u200b", "") # zero-width space version = rel.tag_name.replace("v", "") gittag = rel.tag_name d = dict(version=version, tag=gittag, checksum=chksum, fname=fname, url=url, notes=relnotes) # template and pack tmpdir = tempfile.mkdtemp() find_and_replace_templates_new("nyrna", tmpdir, d) os.rename(fname, os.path.join(tmpdir, "tools", fname)) abort_on_nonzero( subprocess.call(["choco", "pack", Path(tmpdir) / "nyrna.nuspec"]))
def main(): pkgname = "TweetDuck" # initalize state array state = [] with io.open(pkgname + ".ghstate", "a+") as f: f.seek(0) # why I have to do this is unknown for _, line in enumerate(f): state.append(line) f = io.open(pkgname + ".ghstate", "a+") # connect to github api gh = Github(os.environ['GH_TOKEN']) repo = gh.get_repo("chylex/" + pkgname) for rel in repo.get_releases(): pushed = False for i in range(len(state)): if str(state[i]).replace("\n", "") == str(rel.id): pushed = True break else: continue if not pushed: asset = get_correct_release_asset(rel.get_assets(), "TweetDuck.exe", None) if asset is None: print("no compatible releases, skipping...") f.write(str(rel.id) + "\n") f.flush() continue tempdir = tempfile.mkdtemp() find_and_replace_templates( pkgname, tempdir, rel.title.replace("Release ", ""), rel.tag_name, None, None, None, None, None, None, rel.body.replace("<", "<").replace(">", ">").replace( "&", "&").replace("\u200b", "")) # zero-width space abort_on_nonzero( subprocess.call( ["choco", "pack", Path(tempdir) / (pkgname + ".nuspec")])) f.write(str(rel.id) + "\n") f.flush() else: continue f.close()
def main(): logger = logging.getLogger('youtube-dlc GitHub Releases') logger.setLevel(logging.DEBUG) for rel in on_new_git_release("youtube-dlc", "blackjack4494/youtube-dlc"): # correlate assets asset = get_correct_release_asset(rel.get_assets(), "youtube-dlc_x86.exe", None) asset64 = get_correct_release_asset(rel.get_assets(), "youtube-dlc.exe", None) if asset is None or asset64 is None: logger.warn( "Versioned release missing required assets, therefore, ineligible for packaging, skipping." ) continue # download and hash url = asset.browser_download_url fname = asset.name abort_on_nonzero( subprocess.call(["wget", url, "--output-document", fname])) chksum = checksum.get_for_file(fname, "sha512") url64 = asset64.browser_download_url fname64 = "youtube-dlc_x86_64.exe" # override the file name so it doesn't collide in the install script abort_on_nonzero( subprocess.call(["wget", url64, "--output-document", fname64])) chksum64 = checksum.get_for_file(fname64, "sha512") # assemble information relnotes = rel.body if rel.body is None: relnotes = "" else: relnotes = relnotes.replace("<", "<").replace( ">", ">").replace("&", "&").replace("\u200b", "") # zero-width space version = rel.tag_name.strip("v").replace("-", ".") gittag = rel.tag_name d = dict(version=version, tag=gittag, checksum=chksum, fname=fname, url=url, checksum64=chksum64, fname64=fname64, url64=url64, notes=relnotes) # template and pack tmpdir = tempfile.mkdtemp() find_and_replace_templates_new("youtube-dlc", tmpdir, d) os.rename(fname, os.path.join(tmpdir, "tools", fname)) os.rename(fname64, os.path.join(tmpdir, "tools", fname64)) abort_on_nonzero( subprocess.call( ["choco", "pack", Path(tmpdir) / "youtube-dlc.nuspec"]))
def main(): logger = logging.getLogger('TweetDuck GitHub Releases') logger.setLevel(logging.DEBUG) for rel in on_new_git_release("TweetDuck", "chylex/TweetDuck"): # correlate assets asset = get_correct_release_asset(rel.get_assets(), "TweetDuck.exe", None) if asset is None: logger.warn( "Versioned release missing required assets, therefore, ineligible for packaging, skipping." ) continue # assemble information relnotes = rel.body if rel.body is None: relnotes = "" else: relnotes = relnotes.replace("<", "<").replace( ">", ">").replace("&", "&").replace("\u200b", "") # zero-width space version = rel.tag_name.replace("v", "") gittag = rel.tag_name d = dict(version=version, tag=gittag, notes=relnotes) # template and pack tmpdir = tempfile.mkdtemp() find_and_replace_templates_new("tweetduck", tmpdir, d) abort_on_nonzero( subprocess.call(["choco", "pack", Path(tmpdir) / "tweetduck.nuspec"]))
def main(): logger = logging.getLogger('Ludusavi GitHub Releases') logger.setLevel(logging.DEBUG) looped_back = False asset = None asset64 = None altasset = None altasset64 = None for rel in on_new_git_release("ludusavi", "mtkennerly/ludusavi"): # correlate assets if asset is None: asset = get_correct_release_asset(rel.get_assets(), "win32.zip", "opengl") if asset64 is None: asset64 = get_correct_release_asset(rel.get_assets(), "win64.zip", "opengl") if altasset is None: altasset = get_correct_release_asset(rel.get_assets(), "+opengl-win32", "linux") if altasset64 is None: altasset64 = get_correct_release_asset(rel.get_assets(), "+opengl-win64.zip", "linux") if looped_back is False: print(asset) print(asset64) print(altasset) print(altasset64) looped_back = True continue if asset is None or asset64 is None or altasset is None or altasset64 is None: logger.warn( 'Versioned release missing required assets, therefore, ineligible for packaging, skipping.' ) continue # download and hash url = asset.browser_download_url fname = asset.name abort_on_nonzero( subprocess.call(["wget", url, "--output-document", fname])) chksum = checksum.get_for_file(fname, "sha512") url64 = asset64.browser_download_url fname64 = asset64.name abort_on_nonzero( subprocess.call(["wget", url64, "--output-document", fname64])) chksum64 = checksum.get_for_file(fname64, "sha512") alturl = altasset.browser_download_url altfname = altasset.name abort_on_nonzero( subprocess.call(["wget", alturl, "--output-document", altfname])) altchksum = checksum.get_for_file(altfname, "sha512") alturl64 = altasset64.browser_download_url altfname64 = altasset64.name abort_on_nonzero( subprocess.call( ["wget", alturl64, "--output-document", altfname64])) altchksum64 = checksum.get_for_file(altfname64, "sha512") # assemble information relnotes = rel.body if rel.body is None: relnotes = "" else: relnotes = relnotes.replace("<", "<").replace( ">", ">").replace("&", "&").replace("\u200b", "") # zero-width space version = rel.tag_name.replace("v", "") gittag = rel.tag_name d = dict(version=version, tag=gittag, url=url, checksum=chksum, fname=fname, url64=url64, checksum64=chksum64, fname64=fname64, alturl=alturl, altchecksum=altchksum, altfname=altfname, alturl64=alturl64, altchecksum64=altchksum64, altfname64=altfname64, notes=relnotes) # template and pack tmpdir = tempfile.mkdtemp() find_and_replace_templates_new("ludusavi", tmpdir, d) os.rename(fname, os.path.join(tmpdir, "tools", fname)) os.rename(fname64, os.path.join(tmpdir, "tools", fname64)) os.rename(altfname, os.path.join(tmpdir, "tools", altfname)) os.rename(altfname64, os.path.join(tmpdir, "tools", altfname64)) abort_on_nonzero( subprocess.call( ["choco", "pack", Path(tmpdir) / "ludusavi.nuspec"])) # reset variables looped_back = False asset = None asset64 = None altasset = None altasset64 = None
def main(): pkgname = "flutter" # initalize state array state = [] with io.open(pkgname+".gasstate", "a+") as f: f.seek(0) # why I have to do this is unknown for _, line in enumerate(f): state.append(line) f = io.open(pkgname+".gasstate", "a+") # connect to github api req = requests.get( "https://storage.googleapis.com/flutter_infra/releases/releases_windows.json") repo = req.json() for rel in repo["releases"]: pushed = False for i in range(len(state)): if str(state[i]).replace("\n", "") == str(rel["hash"]): pushed = True break else: continue if not pushed: url = "https://storage.googleapis.com/flutter_infra/releases/" + \ rel["archive"] chksum = rel["sha256"] tempdir = tempfile.mkdtemp() version = rel["version"].replace("v", "") version = version.replace("-de", "-dev") version = version.replace("+hotfix", "") version = version.replace("-hotfix", "") version = version.replace(".pre", "") versions = version.replace("dev.", "").split("-") version = versions[0] if "-dev" in version: version = version.replace("-dev", "") if "-beta" in version: version = version.replace("-beta", "") if "-stable" in version: version = version.replace("-stable", "") print(versions) version = version.split("-")[0] try: minorminor = str(versions[1].split(".")[0]) version = version+"."+minorminor except: pass if rel["channel"] == "beta": version = version+"-beta" if rel["channel"] == "dev": version = version+"-dev" # version = version+"."+str(versions[1].split(".")[1]) try: version = version + "-" + str(versions[1].split(".")[1]) except: pass find_and_replace_templates(pkgname, tempdir, version, rel["version"].replace("v", "").replace("-de", "-dev"), url, chksum, None, None, None, None, None) abort_on_nonzero(subprocess.call(["choco", "pack", Path(tempdir)/(pkgname+".nuspec")])) f.write(str(rel["hash"])+"\n") f.flush() else: continue f.close()
def main(): # initalize state array state = [] with io.open("lsd.ghstate", "a+") as f: f.seek(0) # why I have to do this is unknown for _, line in enumerate(f): state.append(line) f = io.open("lsd.ghstate", "a+") # connect to github api gh = Github(os.environ['GH_TOKEN']) repo = gh.get_repo("peltoche/lsd") for rel in repo.get_releases(): pushed = False for i in range(len(state)): if str(state[i]).replace("\n", "") == str(rel.id): pushed = True break else: continue if not pushed: asset = get_correct_release_asset(rel.get_assets(), "i686-pc-windows-msvc", None) asset64 = get_correct_release_asset(rel.get_assets(), "x86_64-pc-windows-msvc", None) altasset = get_correct_release_asset(rel.get_assets(), "i686-pc-windows-gnu", None) altasset64 = get_correct_release_asset(rel.get_assets(), "x86_64-pc-windows-gnu", None) if asset is None or asset64 is None or altasset is None or altasset64 is None: print("no compatible releases, skipping...") f.write(str(rel.id) + "\n") f.flush() continue print(rel.id) tempdir = tempfile.mkdtemp() url = asset.browser_download_url fname = asset.name url64 = asset64.browser_download_url fname64 = asset64.name alturl = altasset.browser_download_url altfname = altasset.name alturl64 = altasset64.browser_download_url altfname64 = altasset64.name subprocess.call(["wget", url, "--output-document", fname]) chksum = checksum.get_for_file(fname, "sha512") subprocess.call(["wget", url64, "--output-document", fname64]) chksum64 = checksum.get_for_file(fname64, "sha512") subprocess.call(["wget", alturl, "--output-document", altfname]) altchksum = checksum.get_for_file(altfname, "sha512") subprocess.call( ["wget", alturl64, "--output-document", altfname64]) altchksum64 = checksum.get_for_file(altfname64, "sha512") relnotes = rel.body.replace("<", "<").replace( ">", ">").replace("&", "&").replace("\u200b", "") # zero-width space version = rel.tag_name.replace("v", "") gittag = rel.tag_name d = dict(version=version, tag=gittag, url=url, checksum=chksum, fname=fname, url64=url64, checksum64=chksum64, fname64=fname64, alturl=alturl, altchecksum=altchksum, altfname=altfname, alturl64=alturl64, altchecksum64=altchksum64, altfname64=altfname64, notes=relnotes) find_and_replace_templates_new("lsd", tempdir, d) os.rename(fname, os.path.join(tempdir, "tools", fname)) os.rename(fname64, os.path.join(tempdir, "tools", fname64)) os.rename(altfname, os.path.join(tempdir, "tools", altfname)) os.rename(altfname64, os.path.join(tempdir, "tools", altfname64)) abort_on_nonzero( subprocess.call( ["choco", "pack", Path(tempdir) / "lsd.nuspec"])) f.write(str(rel.id) + "\n") f.flush() else: continue f.close()
def main(): logger = logging.getLogger('dust GitHub Releases') logger.setLevel(logging.DEBUG) for rel in on_new_git_release("dust", "bootandy/dust"): # correlate assets asset = get_correct_release_asset(rel.get_assets(), "i686-pc-windows-msvc", "linux") asset64 = get_correct_release_asset(rel.get_assets(), "x86_64-pc-windows-msvc", "linux") altasset = get_correct_release_asset(rel.get_assets(), "i686-pc-windows-gnu", "linux") altasset64 = get_correct_release_asset(rel.get_assets(), "x86_64-pc-windows-gnu", "linux") if asset is None or asset64 is None or altasset is None or altasset64 is None: logger.warn( "Versioned release missing required assets, therefore, ineligible for packaging, skipping." ) continue # download and hash url = asset.browser_download_url fname = asset.name abort_on_nonzero( subprocess.call(["wget", url, "--output-document", fname])) chksum = checksum.get_for_file(fname, "sha512") url64 = asset64.browser_download_url fname64 = asset64.name abort_on_nonzero( subprocess.call(["wget", url64, "--output-document", fname64])) chksum64 = checksum.get_for_file(fname64, "sha512") alturl = altasset.browser_download_url altfname = altasset.name abort_on_nonzero( subprocess.call(["wget", alturl, "--output-document", altfname])) altchksum = checksum.get_for_file(altfname, "sha512") alturl64 = altasset64.browser_download_url altfname64 = altasset64.name abort_on_nonzero( subprocess.call( ["wget", alturl64, "--output-document", altfname64])) altchksum64 = checksum.get_for_file(altfname64, "sha512") # assemble information relnotes = rel.body if rel.body is None: relnotes = "" else: relnotes = relnotes.replace("<", "<").replace( ">", ">").replace("&", "&").replace("\u200b", "") # zero-width space version = rel.tag_name.replace("v", "") gittag = rel.tag_name d = dict(version=version, tag=gittag, checksum=chksum, fname=fname, url=url, checksum64=chksum64, fname64=fname64, url64=url64, altchecksum=altchksum, altfname=altfname, alturl=alturl, altchecksum64=altchksum64, altfname64=altfname64, alturl64=alturl64, notes=relnotes) # template and pack tmpdir = tempfile.mkdtemp() find_and_replace_templates_new("dust", tmpdir, d) os.rename(fname, os.path.join(tmpdir, "tools", fname)) os.rename(fname64, os.path.join(tmpdir, "tools", fname64)) os.rename(altfname, os.path.join(tmpdir, "tools", altfname)) os.rename(altfname64, os.path.join(tmpdir, "tools", altfname64)) abort_on_nonzero( subprocess.call(["choco", "pack", Path(tmpdir) / "dust.nuspec"]))