bulk versions.json
This commit is contained in:
@@ -4,24 +4,39 @@
|
||||
lib,
|
||||
fetchurl,
|
||||
fetchzip,
|
||||
# Required
|
||||
versionFilename ? "cachyos-v4-version.json",
|
||||
pkgs,
|
||||
# Repo metadata
|
||||
owner ? "CachyOS",
|
||||
repo ? "proton-cachyos",
|
||||
# Optional
|
||||
# Behavior
|
||||
withUpdateScript ? true,
|
||||
# Variant selection (null -> use defaultVariant from version.json)
|
||||
variant ? null,
|
||||
# Packaging/customization knobs
|
||||
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
|
||||
inherit (lib.trivial) importJSON;
|
||||
|
||||
# Load unified version spec and select the desired variant
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec variant null;
|
||||
vars = selected.variables or {};
|
||||
base = vars.base;
|
||||
release = vars.release;
|
||||
|
||||
# Derived values for the current variant
|
||||
releaseVersion = "${releasePrefix}${base}-${release}${releaseSuffix}";
|
||||
homepage = "https://github.com/${owner}/${repo}";
|
||||
url = "${homepage}/releases/download/${releaseVersion}/${tarballPrefix}${releaseVersion}${tarballSuffix}";
|
||||
|
||||
# Choose fetcher based on file type
|
||||
intake =
|
||||
if lib.strings.hasSuffix ".zip" url then
|
||||
{
|
||||
@@ -36,11 +51,11 @@ let
|
||||
in
|
||||
stdenvNoCC.mkDerivation {
|
||||
name = repo;
|
||||
version = "${version.base}.${version.release}";
|
||||
version = "${base}.${release}";
|
||||
|
||||
src = intake.fetcher {
|
||||
inherit url;
|
||||
inherit (version) hash;
|
||||
hash = selected.sources.proton.hash;
|
||||
};
|
||||
|
||||
buildCommand = ''
|
||||
@@ -61,10 +76,11 @@ stdenvNoCC.mkDerivation {
|
||||
tarballSuffix
|
||||
releasePrefix
|
||||
releaseSuffix
|
||||
versionFilename
|
||||
owner
|
||||
repo
|
||||
;
|
||||
# Prefer explicit variant, otherwise use defaultVariant from the spec
|
||||
variant = if variant != null then variant else (versionSpec.defaultVariant or "cachyos");
|
||||
};
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user