diff --git a/flake.nix b/flake.nix index 16e32bc..21c9d00 100644 --- a/flake.nix +++ b/flake.nix @@ -71,9 +71,18 @@ "sourcemod-plugin-setteam" "sourcemod-plugin-banned" "sourcemod-plugin-who" - "sourcemod-plugin-afk" "sourcemod-plugin-demostf" "sourcemod-plugin-properpregame" + "sourcemod-plugin-afk" + "sourcemod-plugin-classwarning" + "sourcemod-plugin-fixstvslot" + "sourcemod-plugin-logstf" + "sourcemod-plugin-medicstats" + "sourcemod-plugin-pause" + "sourcemod-plugin-recordstv" + "sourcemod-plugin-restorescore" + "sourcemod-plugin-supstats2" + "sourcemod-plugin-waitforstv" ] // { test = pkgs: @@ -83,9 +92,7 @@ }; sourcemod = true; plugins = with pkgs; [ - sourcemod-plugin-soap-tf2dm - sourcemod-plugin-properpregame - srctvplus + sourcemod-plugin-logstf ]; }; testScript = pkgs: diff --git a/nix/sourcemod/plugins/afk.nix b/nix/sourcemod/plugins/afk.nix deleted file mode 100644 index 8a2bd91..0000000 --- a/nix/sourcemod/plugins/afk.nix +++ /dev/null @@ -1,5 +0,0 @@ -{mkF2Plugin}: -mkF2Plugin (finalAttrs: { - pname = "sourcemod-plugin-afk"; - name = "afk"; -}) diff --git a/nix/sourcemod/plugins/f2.json b/nix/sourcemod/plugins/f2.json new file mode 100644 index 0000000..ed7a32d --- /dev/null +++ b/nix/sourcemod/plugins/f2.json @@ -0,0 +1,12 @@ +[ + { "name": "afk" }, + { "name": "classwarning" }, + { "name": "fixstvslot" }, + { "name": "logstf", "runtimeInputs": ["sourcemod-addon-steamworks"] }, + { "name": "medicstats" }, + { "name": "pause" }, + { "name": "recordstv" }, + { "name": "restorescore" }, + { "name": "supstats2" }, + { "name": "waitforstv" } +] diff --git a/nix/sourcemod/plugins/overlay.nix b/nix/sourcemod/plugins/overlay.nix index 8d227af..9bbf410 100644 --- a/nix/sourcemod/plugins/overlay.nix +++ b/nix/sourcemod/plugins/overlay.nix @@ -1,20 +1,29 @@ -final: prev: { - mkSourcemodPlugin = final.callPackage ./builder/plugin.nix {}; - mkSpirePlugin = final.callPackage ./builder/spire-plugin.nix {}; - mkF2Plugin = final.callPackage ./builder/f2-plugin.nix {}; - sourcemod-plugin-soap-tf2dm = final.callPackage ./soap-tf2dm.nix {}; - sourcemod-plugin-progressive-ruleset-timer = final.callPackage ./progressive-ruleset-timer.nix {}; - sourcemod-plugin-tf2-comp-fixes = final.callPackage ./tf2-comp-fixes.nix {}; - sourcemod-plugin-mapdownloader = final.callPackage ./mapdownloader.nix {}; - sourcemod-plugin-whitelist = final.callPackage ./whitelist.nix {}; - sourcemod-plugin-nocheats = final.callPackage ./nocheats.nix {}; - sourcemod-plugin-nochat = final.callPackage ./nochat.nix {}; - sourcemod-plugin-autoexec = final.callPackage ./autoexec.nix {}; - sourcemod-plugin-sdrconnect = final.callPackage ./sdrconnect.nix {}; - sourcemod-plugin-setteam = final.callPackage ./setteam.nix {}; - sourcemod-plugin-banned = final.callPackage ./banned.nix {}; - sourcemod-plugin-who = final.callPackage ./who.nix {}; - sourcemod-plugin-afk = final.callPackage ./afk.nix {}; - sourcemod-plugin-demostf = final.callPackage ./demostf.nix {}; - sourcemod-plugin-properpregame = final.callPackage ./properpregame.nix {}; -} +final: prev: let + inherit (prev.lib) listToAttrs map importJSON; +in + { + mkSourcemodPlugin = final.callPackage ./builder/plugin.nix {}; + mkSpirePlugin = final.callPackage ./builder/spire-plugin.nix {}; + mkF2Plugin = final.callPackage ./builder/f2-plugin.nix {}; + sourcemod-plugin-soap-tf2dm = final.callPackage ./soap-tf2dm.nix {}; + sourcemod-plugin-progressive-ruleset-timer = final.callPackage ./progressive-ruleset-timer.nix {}; + sourcemod-plugin-tf2-comp-fixes = final.callPackage ./tf2-comp-fixes.nix {}; + sourcemod-plugin-mapdownloader = final.callPackage ./mapdownloader.nix {}; + sourcemod-plugin-whitelist = final.callPackage ./whitelist.nix {}; + sourcemod-plugin-nocheats = final.callPackage ./nocheats.nix {}; + sourcemod-plugin-nochat = final.callPackage ./nochat.nix {}; + sourcemod-plugin-autoexec = final.callPackage ./autoexec.nix {}; + sourcemod-plugin-sdrconnect = final.callPackage ./sdrconnect.nix {}; + sourcemod-plugin-setteam = final.callPackage ./setteam.nix {}; + sourcemod-plugin-banned = final.callPackage ./banned.nix {}; + sourcemod-plugin-who = final.callPackage ./who.nix {}; + sourcemod-plugin-demostf = final.callPackage ./demostf.nix {}; + sourcemod-plugin-properpregame = final.callPackage ./properpregame.nix {}; + } + // listToAttrs (map (info: { + name = "sourcemod-plugin-${info.name}"; + value = final.mkF2Plugin { + name = info.name; + runtimeInputs = map (input: final.${input}) (info.runtimeInputs or []); + }; + }) (importJSON ./f2.json)) diff --git a/update-all.nu b/update-all.nu index 05a1001..4e5d987 100755 --- a/update-all.nu +++ b/update-all.nu @@ -21,6 +21,8 @@ def main [] { # nix-update --flake --use-update-script sourcemod-includes list_plugins | each {|plugin| nix-update --flake --use-update-script $"sourcemod-plugin-($plugin)"} + # all F2 plugins are updated in one go + nix-update --flake --use-update-script sourcemod-plugin-afk nix fmt }