From 4f3bbdaecaf9b17cd6340fac204bf36d7a92423d Mon Sep 17 00:00:00 2001 From: Adam Stephens Date: Tue, 25 Jun 2024 14:45:14 -0400 Subject: [PATCH] add update script for kernel --- flake.nix | 5 +++++ update.py | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100755 update.py diff --git a/flake.nix b/flake.nix index 8b4600e..e57a463 100644 --- a/flake.nix +++ b/flake.nix @@ -28,6 +28,11 @@ pkgs.cachix pkgs.jq pkgs.just + (pkgs.python3.withPackages (py: [ + py.PyGithub + py.packaging + ])) + pkgs.pyright ]; }; }; diff --git a/update.py b/update.py new file mode 100755 index 0000000..efcb733 --- /dev/null +++ b/update.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 + +from github import Github +import sys +import re +from packaging.version import Version +from subprocess import run + +latest_version: str = "0" +latest_branch: str = "" +previous_version: str = "" + +with Github() as gh: + for branch in gh.get_user("jhovold").get_repo("linux").get_branches(): + v = re.match("wip/sc8280xp-((v?6.[0-9]+)(-rc[0-9]+)?)", branch.name) + if v != None and Version(v.group(1)) > Version(latest_version): + # add .0 to version + latest_version = f"{v.group(2)}.0{v.group(3) or ''}" + latest_branch = v.group(0) + +print("branch: " + latest_branch) +print("latest: " + latest_version) + +with open("packages/default.nix", "r") as f: + lines = f.readlines() + +for line in lines: + v = re.match(r'^\s*version = "(6[.0-9-rc]+)";.*$', line) + if v != None: + previous_version = v.group(1) + +print("previous: " + previous_version) + +if previous_version == latest_version: + print("No update found, exiting.") + sys.exit(1) + +with open("packages/default.nix", "w") as f: + for line in lines: + f.write( + re.sub( + r'^(\s*version = ")6[.0-9-rc]+(";.*$)', + rf"\g<1>{latest_version}\2", + line, + ) + ) + +run( + f"npins add --name linux-jhovold github --branch {latest_branch} jhovold linux".split( + " " + ) +) + +run("git add npins/ packages/default.nix".split(" ")) +run(["git", "commit", "-m", f"jhovold: {previous_version} -> {latest_version}"])