diff --git a/flake.nix b/flake.nix index 13f1e3f..7445ae5 100644 --- a/flake.nix +++ b/flake.nix @@ -40,10 +40,10 @@ perSystem = pkgs: { sourcemods = pkgs.lib.mapAttrs (name: sdk: pkgs.sourcemod.override {sdks = {${name} = sdk;};}) pkgs.hl2sdk; - metamods = pkgs.lib.mapAttrs (name: sdk: pkgs.metamod-source.override {sdks = {${name} = sdk;};}) pkgs.hl2sdk; + metamods = pkgs.lib.mapAttrs (name: sdk: pkgs.metamod-source-builder {${name} = sdk;}) pkgs.hl2sdk; }; - packages = inheritPkgs ["ambuild" "hl2sdk" "sourcepawn" "sourcemod-includes" "sourcemod-include-library" "srcds-tf2"]; + packages = inheritPkgs ["ambuild" "hl2sdk" "sourcepawn" "metamod-source" "sourcemod" "sourcemod-includes" "sourcemod-include-library" "srcds-tf2"]; checks = { buildTestScript = {pkgs, ...}: diff --git a/nix/sourcemod/metamod-source.nix b/nix/sourcemod/metamod-source.nix index 78372cd..ae0c943 100644 --- a/nix/sourcemod/metamod-source.nix +++ b/nix/sourcemod/metamod-source.nix @@ -5,10 +5,9 @@ git, fetchpatch2, symlinkJoin, - sdks ? {}, -}: let +}: sdks: let inherit (builtins) attrNames concatStringsSep attrValues; - sdkNames = attrNames sdks; + sdkNames = concatStringsSep "," (attrNames sdks); combinedSdks = symlinkJoin { name = "hl2sdk-${concatStringsSep "-" (attrNames sdks)}"; paths = attrValues sdks; @@ -45,7 +44,7 @@ in buildPhase = '' mkdir build cd build - python ../configure.py --sdks ${concatStringsSep "," sdkNames} --hl2sdk-root=${combinedSdks} --disable-auto-versioning + python ../configure.py --sdks=${sdkNames} --hl2sdk-root=${combinedSdks} --disable-auto-versioning ambuild ''; diff --git a/nix/sourcemod/overlay.nix b/nix/sourcemod/overlay.nix index 83abc0d..f53992b 100644 --- a/nix/sourcemod/overlay.nix +++ b/nix/sourcemod/overlay.nix @@ -4,7 +4,8 @@ final: prev: { inherit (final.stdenvNoCC) mkDerivation; }; ambuild = final.python3Packages.callPackage ./ambuild.nix {}; - metamod-source = final.callPackage ./metamod-source.nix {}; + metamod-source = final.callPackage ./metamod-source.nix {} {}; + metamod-source-builder = final.callPackage ./metamod-source.nix {}; sourcemod = final.callPackage ./sourcemod.nix {}; sourcepawn = final.callPackage ./sourcepawn.nix {}; sourcemod-includes = final.callPackage ./includes/sourcemod-includes.nix {}; diff --git a/update-all.nu b/update-all.nu index 10a2605..1edc513 100755 --- a/update-all.nu +++ b/update-all.nu @@ -1,8 +1,10 @@ #! /usr/bin/env nu def main [] { - let sdks = open nix/sourcemod/hl2sdks.json | columns - $sdks | each {|sdk| update_sdk $sdk} + update_metamod + + # let sdks = open nix/sourcemod/hl2sdks.json | columns + # $sdks | each {|sdk| update_sdk $sdk} } def update_sdk [sdk: string] { @@ -15,3 +17,13 @@ def update_sdk [sdk: string] { nix-update --flake --use-update-script $"hl2sdk.($sdk)" nix build .#sourcemods.x86_64-linux.tf2 } + +def update_metamod [] { + let html = http get https://www.metamodsource.net/downloads.php/?branch=stable + let branch = $html | query web --query h3 | first | first | parse --regex "from (?P[0-9.]+) Branch" | get branch | first + let build = $html | query web --as-table [Build] | get Build | first + print $"Updating metamod-source to ($branch).0.($build)" + nix-update --flake --version=$"($branch).0.($build)" metamod-source + + nom build .#metamods.x86_64-linux.tf2 +}