Пример #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"]))
Пример #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():
    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():
    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"])
        )
Пример #5
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"]))
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"]))