From 77c76e6483d2af20a546a0a04a6809b527396098 Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Mon, 5 Jan 2026 14:54:52 -0600 Subject: [PATCH] chack --- flake.lock | 78 ++++++++--------- modules/nixos/gaming/default.nix | 9 +- modules/nixos/nix/default.nix | 83 ++++++++++--------- modules/nixos/services/glance/default.nix | 30 +++++++ overlays/age-plugin-yubikey/default.nix | 18 ++++ overlays/proton-cachyos/default.nix | 22 +++++ overlays/redis/default.nix | 6 ++ .../proton-cachyos/cachyos-v2-version.json | 5 ++ .../proton-cachyos/cachyos-v3-version.json | 5 ++ .../proton-cachyos/cachyos-v4-version.json | 5 ++ packages/proton-cachyos/cachyos-version.json | 5 ++ packages/proton-cachyos/default.nix | 82 ++++++++++++++++++ packages/proton-cachyos/ge-version.json | 5 ++ packages/proton-cachyos/update.nix | 63 ++++++++++++++ 14 files changed, 337 insertions(+), 79 deletions(-) create mode 100644 overlays/age-plugin-yubikey/default.nix create mode 100644 overlays/proton-cachyos/default.nix create mode 100644 packages/proton-cachyos/cachyos-v2-version.json create mode 100644 packages/proton-cachyos/cachyos-v3-version.json create mode 100644 packages/proton-cachyos/cachyos-v4-version.json create mode 100644 packages/proton-cachyos/cachyos-version.json create mode 100644 packages/proton-cachyos/default.nix create mode 100644 packages/proton-cachyos/ge-version.json create mode 100644 packages/proton-cachyos/update.nix diff --git a/flake.lock b/flake.lock index dc3b1ed..6f489ae 100644 --- a/flake.lock +++ b/flake.lock @@ -285,11 +285,11 @@ }, "flake-compat_4": { "locked": { - "lastModified": 1761640442, - "narHash": "sha256-AtrEP6Jmdvrqiv4x2xa5mrtaIp3OEe8uBYCDZDS+hu8=", + "lastModified": 1746162366, + "narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=", "owner": "nix-community", "repo": "flake-compat", - "rev": "4a56054d8ffc173222d09dad23adf4ba946c8884", + "rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b", "type": "github" }, "original": { @@ -550,11 +550,11 @@ ] }, "locked": { - "lastModified": 1767437240, - "narHash": "sha256-OA0dBHhccdupFXp+/eaFfb8K1dQxk61in4aF5ITGVX8=", + "lastModified": 1767556355, + "narHash": "sha256-RDTUBDQBi9D4eD9iJQWtUDN/13MDLX+KmE+TwwNUp2s=", "owner": "nix-community", "repo": "home-manager", - "rev": "1cfa305fba94468f665de1bd1b62dddf2e0cb012", + "rev": "f894bc4ffde179d178d8deb374fcf9855d1a82b7", "type": "github" }, "original": { @@ -583,11 +583,11 @@ "homebrew-cask": { "flake": false, "locked": { - "lastModified": 1767458043, - "narHash": "sha256-9wRKvEog4Ed3gCfxiDviXUlgH4l5iljc5B9I4yQU/RQ=", + "lastModified": 1767576576, + "narHash": "sha256-PW0qkMDuHRsaWYOFCkDpez0aPtXDGDKTGbWvMj3OlFk=", "owner": "homebrew", "repo": "homebrew-cask", - "rev": "d8970b9f4b6b72992b7e4e3c6a7047c403ade76a", + "rev": "df47df9f7e8d536e138b5213d79f9d2dd4598193", "type": "github" }, "original": { @@ -599,11 +599,11 @@ "homebrew-core": { "flake": false, "locked": { - "lastModified": 1767452389, - "narHash": "sha256-ZVzK1Zd00XeUHbTLNOU3KQtCEbP20xfj0HdP8yN78CQ=", + "lastModified": 1767576397, + "narHash": "sha256-BDECp5UR5m0t4YJU5hbTABsWLrMzSlPX2fcYDWRNDP4=", "owner": "homebrew", "repo": "homebrew-core", - "rev": "806bf4b26f47cdc6c2e53c5fbaf344d2a744f165", + "rev": "8eba6ebee29c5a09159c77f171c4c9534b240e86", "type": "github" }, "original": { @@ -821,11 +821,11 @@ "nixpkgs": "nixpkgs_8" }, "locked": { - "lastModified": 1767405959, - "narHash": "sha256-K9P7J2W/deP9d1aZOlIvmK+sWCQrk6kcX3T21y3Marc=", + "lastModified": 1767493793, + "narHash": "sha256-MWEsIcQZXrjvvFyPNiK5LKrWu6Xo9AKnjo4OgS4NVjU=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "c84c57fb183f7b2318187927d3a82641e6796933", + "rev": "0f7e75f772be341d8e461162c0bcf0f5b971cb86", "type": "github" }, "original": { @@ -889,11 +889,11 @@ "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1767441081, - "narHash": "sha256-Y4T5OR+R4QBFvRnMsZK7Bol4yk4TLuBo8l7KhrXoGjQ=", + "lastModified": 1767465220, + "narHash": "sha256-P5qVna7ptT0BPQI6EesszfK25znFNpR9xiEJpqheo0M=", "owner": "nix-community", "repo": "nixos-apple-silicon", - "rev": "612258d7a123a727b908fb9cdbbe49182ca9a2fe", + "rev": "b6e97a42d409155bc70f2d211ab1029338a37523", "type": "github" }, "original": { @@ -1059,11 +1059,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1767325753, - "narHash": "sha256-yA/CuWyqm+AQo2ivGy6PlYrjZBQm7jfbe461+4HF2fo=", + "lastModified": 1767480499, + "narHash": "sha256-8IQQUorUGiSmFaPnLSo2+T+rjHtiNWc+OAzeHck7N48=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "64049ca74d63e971b627b5f3178d95642e61cedd", + "rev": "30a3c519afcf3f99e2c6df3b359aec5692054d92", "type": "github" }, "original": { @@ -1075,11 +1075,11 @@ }, "nixpkgs_10": { "locked": { - "lastModified": 1767116409, - "narHash": "sha256-5vKw92l1GyTnjoLzEagJy5V5mDFck72LiQWZSOnSicw=", + "lastModified": 1762977756, + "narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cad22e7d996aea55ecab064e84834289143e44a0", + "rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55", "type": "github" }, "original": { @@ -1091,11 +1091,11 @@ }, "nixpkgs_11": { "locked": { - "lastModified": 1767116409, - "narHash": "sha256-5vKw92l1GyTnjoLzEagJy5V5mDFck72LiQWZSOnSicw=", + "lastModified": 1767379071, + "narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cad22e7d996aea55ecab064e84834289143e44a0", + "rev": "fb7944c166a3b630f177938e478f0378e64ce108", "type": "github" }, "original": { @@ -1107,11 +1107,11 @@ }, "nixpkgs_12": { "locked": { - "lastModified": 1766840161, - "narHash": "sha256-Ss/LHpJJsng8vz1Pe33RSGIWUOcqM1fjrehjUkdrWio=", + "lastModified": 1767364772, + "narHash": "sha256-fFUnEYMla8b7UKjijLnMe+oVFOz6HjijGGNS1l7dYaQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3edc4a30ed3903fdf6f90c837f961fa6b49582d1", + "rev": "16c7794d0a28b5a37904d55bcca36003b9109aaa", "type": "github" }, "original": { @@ -1473,11 +1473,11 @@ "nixpkgs": "nixpkgs_12" }, "locked": { - "lastModified": 1766894905, - "narHash": "sha256-pn8AxxfajqyR/Dmr1wnZYdUXHgM3u6z9x0Z1Ijmz2UQ=", + "lastModified": 1767499857, + "narHash": "sha256-0zUU/PW09d6oBaR8x8vMHcAhg1MOvo3CwoXgHijzzNE=", "owner": "Mic92", "repo": "sops-nix", - "rev": "61b39c7b657081c2adc91b75dd3ad8a91d6f07a7", + "rev": "ecc41505948ec2ab0325f14c9862a4329c2b4190", "type": "github" }, "original": { @@ -1530,11 +1530,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1767397606, - "narHash": "sha256-QA1d/6XzxK3lsMiJ+xiJf340cpNeJs/xIM6D0/yLqs4=", + "lastModified": 1767559556, + "narHash": "sha256-Pf1d9Hh9UUQ/oS+evq6dU0MiaDczXXNztTlQekaMbW0=", "owner": "nix-community", "repo": "stylix", - "rev": "6850ad2e9f3f7ff6116e9e6fb73a9cca2d9b1a35", + "rev": "b135edbdd403896d1ef507934c045f716deb5609", "type": "github" }, "original": { @@ -1691,11 +1691,11 @@ ] }, "locked": { - "lastModified": 1767122417, - "narHash": "sha256-yOt/FTB7oSEKQH9EZMFMeuldK1HGpQs2eAzdS9hNS/o=", + "lastModified": 1767468822, + "narHash": "sha256-MpffQxHxmjVKMiQd0Tg2IM/bSjjdQAM+NDcX6yxj7rE=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "dec15f37015ac2e774c84d0952d57fcdf169b54d", + "rev": "d56486eb9493ad9c4777c65932618e9c2d0468fc", "type": "github" }, "original": { diff --git a/modules/nixos/gaming/default.nix b/modules/nixos/gaming/default.nix index d528d7d..00da874 100755 --- a/modules/nixos/gaming/default.nix +++ b/modules/nixos/gaming/default.nix @@ -37,7 +37,14 @@ in remotePlay.openFirewall = true; # Open ports in the firewall for Source Dedicated Server dedicatedServer.openFirewall = true; - extraCompatPackages = with pkgs; [ proton-ge-bin ]; + extraCompatPackages = with pkgs; [ + proton-ge-bin + + pkgs.${namespace}.proton-cachyos + pkgs.${namespace}.proton-cachyos-v3 + pkgs.${namespace}.proton-cachyos-v2 + pkgs.${namespace}.proton-cachyos-v1 + ]; gamescopeSession = { enable = true; args = [ diff --git a/modules/nixos/nix/default.nix b/modules/nixos/nix/default.nix index 1345197..713b830 100644 --- a/modules/nixos/nix/default.nix +++ b/modules/nixos/nix/default.nix @@ -2,18 +2,22 @@ config, lib, namespace, + pkgs, ... }: { programs.ccache = { enable = true; packageNames = [ + "bcachefs" + "bcachefs-tools" "dolphin-emu" # "ffmpeg" "ffmpeg_8" "ffmpeg_7" "ffmpeg_6" "ffmpeg-full" + "ffmpeg-headless" "gamescope" "gjs" "gst-plugins-bad" @@ -57,15 +61,16 @@ (_self: super: { ${namespace} = let - clangCcacheStdenv = super.overrideCC super.llvmPackages.stdenv ( - super.ccacheWrapper.override { - cc = super.llvmPackages.stdenv.cc; - extraConfig = '' - export CCACHE_SLOPPINESS=include_file_ctime,time_macros - export CCACHE_DIR=/var/cache/ccache - ''; - } - ); + # clangCcacheStdenv = super.overrideCC super.llvmPackages.stdenv ( + # super.ccacheWrapper.override { + # cc = super.llvmPackages.stdenv.cc; + # extraConfig = '' + # export CCACHE_SLOPPINESS=include_file_ctime,time_macros + # export CCACHE_DIR=/var/cache/ccache + # ''; + # } + # ); + clangCcacheStdenv = pkgs.overrideCC pkgs.ccacheStdenv (pkgs.ccacheWrapper.override { cc = pkgs.clang; }); in super.${namespace} // { @@ -84,48 +89,48 @@ linuxPackages_cachyos = super.${namespace}.linuxPackages_cachyos.override { stdenv = super.ccacheStdenv; }; - linuxPackages_cachyos-lto = super.${namespace}.linuxPackages_cachyos-lto.override { - stdenv = clangCcacheStdenv; - }; - linuxPackages_cachyos-lto-full = super.${namespace}.linuxPackages_cachyos-lto-full.override { - stdenv = clangCcacheStdenv; - }; + # linuxPackages_cachyos-lto = super.${namespace}.linuxPackages_cachyos-lto.override { + # stdenv = clangCcacheStdenv; + # }; + # linuxPackages_cachyos-lto-full = super.${namespace}.linuxPackages_cachyos-lto-full.override { + # stdenv = clangCcacheStdenv; + # }; linuxPackages_cachyos-lts = super.${namespace}.linuxPackages_cachyos-lts.override { stdenv = super.ccacheStdenv; }; - linuxPackages_cachyos-lts-lto = super.${namespace}.linuxPackages_cachyos-lts-lto.override { - stdenv = clangCcacheStdenv; - }; - linuxPackages_cachyos-lto-znver4 = super.${namespace}.linuxPackages_cachyos-lto-znver4.override { - stdenv = clangCcacheStdenv; - }; + # linuxPackages_cachyos-lts-lto = super.${namespace}.linuxPackages_cachyos-lts-lto.override { + # stdenv = clangCcacheStdenv; + # }; + # linuxPackages_cachyos-lto-znver4 = super.${namespace}.linuxPackages_cachyos-lto-znver4.override { + # stdenv = clangCcacheStdenv; + # }; linuxPackages_cachyos-server = super.${namespace}.linuxPackages_cachyos-server.override { stdenv = super.ccacheStdenv; }; - linuxPackages_cachyos-server-lto = super.${namespace}.linuxPackages_cachyos-server-lto.override { - stdenv = clangCcacheStdenv; - }; - linuxPackages_cachyos-server-lto-znver4 = - super.${namespace}.linuxPackages_cachyos-server-lto-znver4.override - { stdenv = clangCcacheStdenv; }; + # linuxPackages_cachyos-server-lto = super.${namespace}.linuxPackages_cachyos-server-lto.override { + # stdenv = clangCcacheStdenv; + # }; + # linuxPackages_cachyos-server-lto-znver4 = + # super.${namespace}.linuxPackages_cachyos-server-lto-znver4.override + # { stdenv = clangCcacheStdenv; }; linuxPackages_cachyos-rc = super.${namespace}.linuxPackages_cachyos-rc.override { stdenv = super.ccacheStdenv; }; - linuxPackages_cachyos-rc-lto = super.${namespace}.linuxPackages_cachyos-rc-lto.override { - stdenv = clangCcacheStdenv; - }; - linuxPackages_cachyos-rc-lto-znver4 = - super.${namespace}.linuxPackages_cachyos-rc-lto-znver4.override - { stdenv = clangCcacheStdenv; }; + # linuxPackages_cachyos-rc-lto = super.${namespace}.linuxPackages_cachyos-rc-lto.override { + # stdenv = clangCcacheStdenv; + # }; + # linuxPackages_cachyos-rc-lto-znver4 = + # super.${namespace}.linuxPackages_cachyos-rc-lto-znver4.override + # { stdenv = clangCcacheStdenv; }; linuxPackages_cachyos-hardened = super.${namespace}.linuxPackages_cachyos-hardened.override { stdenv = super.ccacheStdenv; }; - linuxPackages_cachyos-hardened-lto = - super.${namespace}.linuxPackages_cachyos-hardened-lto.override - { stdenv = clangCcacheStdenv; }; - linuxPackages_cachyos-hardened-lto-znver4 = - super.${namespace}.linuxPackages_cachyos-hardened-lto-znver4.override - { stdenv = clangCcacheStdenv; }; + # linuxPackages_cachyos-hardened-lto = + # super.${namespace}.linuxPackages_cachyos-hardened-lto.override + # { stdenv = clangCcacheStdenv; }; + # linuxPackages_cachyos-hardened-lto-znver4 = + # super.${namespace}.linuxPackages_cachyos-hardened-lto-znver4.override + # { stdenv = clangCcacheStdenv; }; linuxPackages_cachyos-deckify = super.${namespace}.linuxPackages_cachyos-deckify.override { stdenv = super.ccacheStdenv; }; diff --git a/modules/nixos/services/glance/default.nix b/modules/nixos/services/glance/default.nix index 215abf0..da1a085 100644 --- a/modules/nixos/services/glance/default.nix +++ b/modules/nixos/services/glance/default.nix @@ -147,6 +147,18 @@ let icon = "sh:manyfold"; allow-insecure = true; } + { + title = "Code Server"; + url = "http://10.0.1.3:4444/"; + icon = "si:vscodium"; + allow-insecure = true; + } + { + title = "NAS KVM"; + url = "http://nas-kvm.local/"; + icon = "si:nanokvm"; + allow-insecure = true; + } { title = "Sonarr"; url = "http://10.0.1.3:8989/"; @@ -167,6 +179,16 @@ let password = "\${ARR_PASS}"; }; } + { + title = "Sabnzbd"; + url = "http://10.0.1.3:8280/"; + icon = "si:sabnzbd"; + allow-insecure = true; + basic-auth = { + username = "\${ARR_USER}"; + password = "\${ARR_PASS}"; + }; + } # { # title = ""; # url = ""; @@ -235,6 +257,14 @@ let } ]; } + { + type = "reddit"; + subreddit = "hockey"; + } + { + type = "reddit"; + subreddit = "formula1"; + } ]; } ]; diff --git a/overlays/age-plugin-yubikey/default.nix b/overlays/age-plugin-yubikey/default.nix new file mode 100644 index 0000000..a644b2d --- /dev/null +++ b/overlays/age-plugin-yubikey/default.nix @@ -0,0 +1,18 @@ +{ + inputs, + self, + ... +}: +final: prev: +{ + # age-plugin-yubikey = final.stable.age-plugin-yubikey; + # librsvg = final.stable.librsvg; + fish = final.stable.fish; + vesktop = final.stable.vesktop; + rustPlatform = final.unstable.rustPlatform // { + cargo-deps-vendor = final.stable.rustPlatform.cargo-deps-vendor; + }; + python3Packages = final.unstable.python3Packages // { + aiohttp = final.stable.python3Packages.aiohttp; + }; +} diff --git a/overlays/proton-cachyos/default.nix b/overlays/proton-cachyos/default.nix new file mode 100644 index 0000000..d117d7e --- /dev/null +++ b/overlays/proton-cachyos/default.nix @@ -0,0 +1,22 @@ +{ + inputs, + self, + namespace, + ... +}: +final: prev: +let +in +{ + ${namespace} = prev.${namespace} // { + proton-cachyos-v3 = prev.${namespace}.proton-cachyos.override { + tarballSuffix = "-x86_64_v3.tar.xz"; + }; + proton-cachyos-v2 = prev.${namespace}.proton-cachyos.override { + tarballSuffix = "-x86_64_v2.tar.xz"; + }; + proton-cachyos-v1 = prev.${namespace}.proton-cachyos.override { + tarballSuffix = "-x86_64.tar.xz"; + }; + }; +} diff --git a/overlays/redis/default.nix b/overlays/redis/default.nix index 096054d..e8e7282 100644 --- a/overlays/redis/default.nix +++ b/overlays/redis/default.nix @@ -5,7 +5,13 @@ final: _prev: { firefox = final.stable.firefox; webkitgtk_6_0 = final.stable.webkitgtk_6_0; webkitgtk_4_1 = final.stable.webkitgtk_4_1; + alvr = final.stable.alvr; + openvr = final.stable.openvr; + cargo-auditable = final.stable.cargo-auditable; + # postgresql = final.stable.postgresql; + immich-machine-learning = final.stable.immich-machine-learning; python3Packages = final.stable.python3Packages // { ctranslate2 = final.stable.python3Packages.ctranslate2; + pglast = final.stable.python3Packages.pglast; }; } diff --git a/packages/proton-cachyos/cachyos-v2-version.json b/packages/proton-cachyos/cachyos-v2-version.json new file mode 100644 index 0000000..dd72fde --- /dev/null +++ b/packages/proton-cachyos/cachyos-v2-version.json @@ -0,0 +1,5 @@ +{ + "base": "10.0", + "release": "20251222", + "hash": "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" +} diff --git a/packages/proton-cachyos/cachyos-v3-version.json b/packages/proton-cachyos/cachyos-v3-version.json new file mode 100644 index 0000000..dd72fde --- /dev/null +++ b/packages/proton-cachyos/cachyos-v3-version.json @@ -0,0 +1,5 @@ +{ + "base": "10.0", + "release": "20251222", + "hash": "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" +} diff --git a/packages/proton-cachyos/cachyos-v4-version.json b/packages/proton-cachyos/cachyos-v4-version.json new file mode 100644 index 0000000..f8f2af4 --- /dev/null +++ b/packages/proton-cachyos/cachyos-v4-version.json @@ -0,0 +1,5 @@ +{ + "base": "10.0", + "release": "20251222", + "hash": "sha256-1+6nCUc93vVZg3j4oSwuM7DYOZ2bNbLIjbH+8OUOSAQ=" +} diff --git a/packages/proton-cachyos/cachyos-version.json b/packages/proton-cachyos/cachyos-version.json new file mode 100644 index 0000000..dd72fde --- /dev/null +++ b/packages/proton-cachyos/cachyos-version.json @@ -0,0 +1,5 @@ +{ + "base": "10.0", + "release": "20251222", + "hash": "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" +} diff --git a/packages/proton-cachyos/default.nix b/packages/proton-cachyos/default.nix new file mode 100644 index 0000000..b649e2e --- /dev/null +++ b/packages/proton-cachyos/default.nix @@ -0,0 +1,82 @@ +{ + callPackage, + stdenvNoCC, + lib, + fetchurl, + fetchzip, + # Required + versionFilename ? "cachyos-v4-version.json", + owner ? "CachyOS", + repo ? "proton-cachyos", + # Optional + withUpdateScript ? true, + toolTitle ? null, + toolPattern ? "proton-.*", + tarballPrefix ? "proton-", + tarballSuffix ? "-x86_64_v4.tar.xz", + releasePrefix ? "cachyos-", + releaseSuffix ? "-slr", + version ? lib.trivial.importJSON ./${versionFilename}, + releaseVersion ? "${releasePrefix}${version.base}-${version.release}${releaseSuffix}", + homepage ? "https://github.com/${owner}/${repo}", + url ? "${homepage}/releases/download/${releaseVersion}/${tarballPrefix}${releaseVersion}${tarballSuffix}", +}: +let + intake = + if lib.strings.hasSuffix ".zip" url then + { + fetcher = fetchzip; + input = "$src/*.tar.xz"; + } + else + { + fetcher = fetchurl; + input = "$src"; + }; +in +stdenvNoCC.mkDerivation { + name = repo; + version = "${version.base}.${version.release}"; + + src = intake.fetcher { + inherit url; + inherit (version) hash; + }; + + buildCommand = '' + mkdir -p $out/bin + tar -C $out/bin --strip=1 -x -f ${intake.input} + '' + # Allow to keep the same name between updates + + lib.strings.optionalString (toolTitle != null) '' + sed -i -r 's|"${toolPattern}"|"${toolTitle}"|' $out/bin/compatibilitytool.vdf + ''; + + passthru = + if withUpdateScript then + { + updateScript = callPackage ./update.nix { + inherit + tarballPrefix + tarballSuffix + releasePrefix + releaseSuffix + versionFilename + owner + repo + ; + }; + } + else + { }; + + meta = with lib; { + inherit homepage; + description = "Compatibility tool for Steam Play based on Wine and additional components (patched and built by ${owner})"; + license = licenses.bsd3; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ + pedrohlc + ]; + }; +} diff --git a/packages/proton-cachyos/ge-version.json b/packages/proton-cachyos/ge-version.json new file mode 100644 index 0000000..8313588 --- /dev/null +++ b/packages/proton-cachyos/ge-version.json @@ -0,0 +1,5 @@ +{ + "base": "10", + "release": "26", + "hash": "sha256-4v/Z0qHs4wtdo9PcnO2qgodQCNHJhLXvx2ZsAoID+ds=" +} diff --git a/packages/proton-cachyos/update.nix b/packages/proton-cachyos/update.nix new file mode 100644 index 0000000..d6f5c08 --- /dev/null +++ b/packages/proton-cachyos/update.nix @@ -0,0 +1,63 @@ +{ + writeShellScript, + lib, + coreutils, + findutils, + gnugrep, + curl, + jq, + git, + nix, + nix-prefetch-git, + moreutils, + yq, + # Config + tarballPrefix, + tarballSuffix, + releasePrefix, + releaseSuffix, + versionFilename, + owner, + repo, +}: +let + path = lib.makeBinPath [ + coreutils + curl + findutils + gnugrep + jq + moreutils + git + nix-prefetch-git + nix + yq + ]; +in +writeShellScript "update-${repo}" '' + set -euo pipefail + PATH=${path} + + srcJson=pkgs/proton-bin/${versionFilename} + localBase=$(jq -r .base < $srcJson) + localRelease=$(jq -r .release < $srcJson) + + latestVer=$(curl 'https://github.com/${owner}/${repo}/releases.atom' | xq -r '.feed.entry[].link."@href"' | grep -Po '(?<=/)${releasePrefix}[^/]+${releaseSuffix}$' | head -n 1) + + if [ "${releasePrefix}''${localBase}-''${localRelease}${releaseSuffix}" == "$latestVer" ]; then + exit 0 + fi + + latestBase=$(echo $latestVer | grep -Po '(?<=^${releasePrefix})[^-]+') + latestRelease=$(echo $latestVer | grep -Po '(?<=-)[^-]+(?=${releaseSuffix}$)') + latestSha256=$(nix-prefetch-url --type sha256 "https://github.com/${owner}/${repo}/releases/download/''${latestVer}/${tarballPrefix}''${latestVer}${tarballSuffix}") + latestHash=$(nix-hash --to-sri --type sha256 $latestSha256) + + jq \ + --arg latestBase "$latestBase" --arg latestRelease "$latestRelease" --arg latestHash "$latestHash" \ + '.base = $latestBase | .release = $latestRelease | .hash = $latestHash' \ + "$srcJson" | sponge "$srcJson" + + git add $srcJson + git commit -m "${repo}: ''${localBase}.''${localRelease} -> ''${latestBase}.''${latestRelease}" +''