Exemple #1
0
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("<", "&lt;").replace(
                ">", "&gt;").replace("&",
                                     "&amp;").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"]))
Exemple #2
0
def main():
    logger = logging.getLogger('Ludusavi GitHub Releases')
    logger.setLevel(logging.DEBUG)

    for rel in on_new_git_release("ludusavi", "mtkennerly/ludusavi"):
        # correlate assets
        asset = get_correct_release_asset(rel.get_assets(), "win32.zip", None)
        asset64 = get_correct_release_asset(rel.get_assets(), "win64.zip",
                                            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 = asset64.name
        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("<", "&lt;").replace(
                ">", "&gt;").replace("&",
                                     "&amp;").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,
                 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))
        abort_on_nonzero(
            subprocess.call(
                ["choco", "pack",
                 Path(tmpdir) / "ludusavi.nuspec"]))
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("<", "&lt;").replace(">", "&gt;").replace(
                    "&", "&amp;").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()
Exemple #4
0
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("<", "&lt;")
                                               .replace(">", "&gt;")
                                               .replace("&", "&amp;")
                                               .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()
Exemple #5
0
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("<", "&lt;")
                                               .replace(">", "&gt;"))
            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("<", "&lt;").replace(
                ">", "&gt;").replace("&",
                                     "&amp;").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():
    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("<", "&lt;").replace(
                    ">",
                    "&gt;").replace("&",
                                    "&amp;").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()
Exemple #9
0
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("<", "&lt;").replace(
                    ">",
                    "&gt;").replace("&",
                                    "&amp;").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("<", "&lt;")
                .replace(">", "&gt;")
                .replace("&", "&amp;")
                .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"])
        )
Exemple #11
0
def main():
    logger = logging.getLogger('Alacritty Portable GitHub Releases')
    logger.setLevel(logging.DEBUG)

    for rel in on_new_git_release("alacritty.portable", "alacritty/alacritty"):
        # correlate assets
        asset = get_correct_release_asset(rel.get_assets(), ".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 = "alacritty.exe" # filename override
        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("<", "&lt;").replace(
                ">", "&gt;").replace("&",
                                     "&amp;").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("alacritty.portable", tmpdir, d)
        os.rename(fname, os.path.join(tmpdir, "tools", fname))
        abort_on_nonzero(
            subprocess.call(["choco", "pack",
                             Path(tmpdir) / "alacritty.portable.nuspec"]))
Exemple #12
0
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("<", "&lt;").replace(">", "&gt;").replace(
                    "&", "&amp;").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('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("<", "&lt;").replace(
                ">", "&gt;").replace("&",
                                     "&amp;").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"]))
Exemple #14
0
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("<", "&lt;").replace(
                ">", "&gt;").replace("&",
                                     "&amp;").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()