package spire sourcemod plugins

This commit is contained in:
Robin Appelman 2026-07-09 21:24:24 +02:00
commit 06fef7782e
16 changed files with 145 additions and 2 deletions

View file

@ -62,6 +62,16 @@
"sourcemod-plugin-progressive-ruleset-timer" "sourcemod-plugin-progressive-ruleset-timer"
"sourcemod-plugin-socket" "sourcemod-plugin-socket"
"sourcemod-plugin-tf2-comp-fixes" "sourcemod-plugin-tf2-comp-fixes"
"sourcemod-plugin-mapdownloader"
"sourcemod-plugin-whitelist"
"sourcemod-plugin-nocheats"
"sourcemod-plugin-nochat"
"sourcemod-plugin-autoexec"
"sourcemod-plugin-sdrconnect"
"sourcemod-plugin-setteam"
"sourcemod-plugin-banned"
"sourcemod-plugin-who"
"sourcemod-plugin-webrcon"
] ]
// { // {
test = pkgs: test = pkgs:
@ -70,6 +80,12 @@
hostname = "Spire Server"; hostname = "Spire Server";
}; };
sourcemod = true; sourcemod = true;
plugins = with pkgs; [
sourcemod-addon-curl
sourcemod-plugin-mapdownloader
sourcemod-plugin-whitelist
sourcemod-plugin-nocheats
];
}; };
testScript = pkgs: testScript = pkgs:
pkgs.buildSourcePawnScript { pkgs.buildSourcePawnScript {

View file

@ -0,0 +1,7 @@
{mkSpirePlugin}:
mkSpirePlugin {
name = "autoexec";
version = "0.2-unstable-2026-02-03";
rev = "9ef880d8cd3d2ad362aa42d7f8a77a8161cabb4d";
hash = "sha256-RxQzFMSudQIOa6f/qaCjPS4qA1cgx0voZYBcHhe2UpU=";
}

View file

@ -0,0 +1,7 @@
{mkSpirePlugin}:
mkSpirePlugin {
name = "banned";
version = "0-unstable-2026-06-18";
rev = "c8186c7bd56e15f2e2e8e5988c0d18058a02df8b";
hash = "sha256-JA9WeM0Je0aHB/z+6xImztTouJNGkaPwD9Cp4z8Ko+4=";
}

View file

@ -0,0 +1,44 @@
{
fetchFromGitea,
stdenvNoCC,
nix-update-script,
lib,
}:
lib.extendMkDerivation {
constructDrv = stdenvNoCC.mkDerivation;
excludeDrvArgNames = ["name" "version" "rev" "hash"];
extendDrvArgs = finalAttrs: {
name,
version,
rev,
hash,
repo ? name,
}: {
pname = "sourcemod-plugin-${name}";
inherit version;
src = fetchFromGitea {
domain = "codeberg.org";
owner = "spire";
inherit rev hash repo;
};
installPhase = ''
runHook preInstall
mkdir -p $out/addons/sourcemod/plugins/
mv plugin/*.smx $out/addons/sourcemod/plugins/
runHook postInstall
'';
passthru = {
updateScript = nix-update-script {
extraArgs = [
"--flake"
"--version=branch"
"--override-filename=nix/sourcemod/plugins/${name}.nix"
];
};
};
};
}

View file

@ -4,7 +4,6 @@
nix-update-script, nix-update-script,
sourcemod, sourcemod,
metamod-source, metamod-source,
curl,
gsasl, gsasl,
curl-3-compat, curl-3-compat,
sourcepawn, sourcepawn,

View file

@ -0,0 +1,7 @@
{mkSpirePlugin}:
mkSpirePlugin {
name = "mapdownloader";
version = "0-unstable-2025-10-27";
rev = "06dbac41712bd62ae3aa1fd442ab2265ee2f488f";
hash = "sha256-aNlrxrv2K73lKP7hYOER3um4P6fbiV/nF4GDcVaUNbo=";
}

View file

@ -0,0 +1,7 @@
{mkSpirePlugin}:
mkSpirePlugin {
name = "nochat";
version = "0-unstable-2026-03-28";
rev = "7c161d4eef058bf3e59146a37ff6ca16594e013b";
hash = "sha256-cO64QGlM8oGVGaDgac74VjIFLrNe8aPrOo3tvrSD4Eo=";
}

View file

@ -0,0 +1,7 @@
{mkSpirePlugin}:
mkSpirePlugin {
name = "nocheats";
version = "0-unstable-2020-05-08";
rev = "5e0e21c241fdf8907d83d9bcf3cce37711b83d14";
hash = "sha256-1uEw0av8NKpdbeuvzr2LavTl0F3K9k9jW7LYoA3UpIE=";
}

View file

@ -1,8 +1,19 @@
final: prev: { final: prev: {
mkSpirePlugin = final.callPackage ./builder/spire-plugin.nix {};
sourcemod-addon-curl = final.callPackage ./curl.nix {}; sourcemod-addon-curl = final.callPackage ./curl.nix {};
sourcemod-plugin-steamworks = final.callPackage ./steamworks.nix {}; sourcemod-plugin-steamworks = final.callPackage ./steamworks.nix {};
sourcemod-plugin-soap-tf2dm = final.callPackage ./soap-tf2dm.nix {}; sourcemod-plugin-soap-tf2dm = final.callPackage ./soap-tf2dm.nix {};
sourcemod-plugin-progressive-ruleset-timer = final.callPackage ./progressive-ruleset-timer.nix {}; sourcemod-plugin-progressive-ruleset-timer = final.callPackage ./progressive-ruleset-timer.nix {};
sourcemod-plugin-socket = final.callPackage ./socket.nix {}; sourcemod-plugin-socket = final.callPackage ./socket.nix {};
sourcemod-plugin-tf2-comp-fixes = final.callPackage ./tf2-comp-fixes.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-webrcon = final.callPackage ./webrcon.nix {};
} }

View file

@ -0,0 +1,7 @@
{mkSpirePlugin}:
mkSpirePlugin {
name = "sdrconnect";
version = "0-unstable-2024-03-23";
rev = "134aeab59bb09c93bfeadea492098ebb671ada9b";
hash = "sha256-b3m029OnIJKonEWhQSFFHNZsQ4P04NP/ls5f+jmB5nQ=";
}

View file

@ -0,0 +1,7 @@
{mkSpirePlugin}:
mkSpirePlugin {
name = "setteam";
version = "0-unstable-2026-06-25";
rev = "7ae52b678ff52959a76ece3a68359e5d8b554cfa";
hash = "sha256-Lnq1g7U7kFpyLhO9erw5gRmKcXYo9qTPANL3uY6byx0=";
}

View file

@ -0,0 +1,7 @@
{mkSpirePlugin}:
mkSpirePlugin {
name = "webrcon";
version = "0-unstable-2020-05-08";
rev = "d407f5b2e85432b9cbd8e8e5ff2a8a2a08a816e9";
hash = "sha256-EuskFNEutkBOQJb03BYD7mvD3CDqEM3jvzpazLIdZTM=";
}

View file

@ -0,0 +1,8 @@
{mkSpirePlugin}:
mkSpirePlugin {
name = "whitelist";
version = "0-unstable-2025-10-29";
rev = "333c5065514a6c5b2f11e57f8ef0bbe80ac28a74";
hash = "sha256-1za2Ii772ymjejI0LaT61hmqEmIMnD/7sVXpMJIwMrc=";
repo = "sm_whitelist";
}

View file

@ -0,0 +1,7 @@
{mkSpirePlugin}:
mkSpirePlugin {
name = "who";
version = "0-unstable-2025-05-04";
rev = "e57deb78388d7812a587c5c7db5505b4286b5607";
hash = "sha256-4vBQROGrMdm09W0/KtdkOAQr973iT9dmXr0+1dAIiq4=";
}

View file

@ -5,6 +5,7 @@
gamedir, gamedir,
hl2sdk, hl2sdk,
sdk, sdk,
extraPackages,
}: let }: let
sdks = { sdks = {
${sdk} = hl2sdk.${sdk}; ${sdk} = hl2sdk.${sdk};
@ -14,7 +15,7 @@
in in
symlinkJoin { symlinkJoin {
name = "srcds-tf2-src-addons"; name = "srcds-tf2-src-addons";
paths = [metaModSdk sourceModSdk]; paths = [metaModSdk sourceModSdk] ++ extraPackages;
postBuild = '' postBuild = ''
mv $out tmp mv $out tmp
mkdir $out mkdir $out

View file

@ -2,6 +2,7 @@ final: prev: let
inherit (prev.lib) toString importJSON listToAttrs map; inherit (prev.lib) toString importJSON listToAttrs map;
depotInputs = importJSON ./depots.json; depotInputs = importJSON ./depots.json;
in { in {
curl-3-compat = final.callPackage ./curl-compat.nix {};
srcds-tf2 = final.callPackage ./default.nix { srcds-tf2 = final.callPackage ./default.nix {
depots = [ depots = [
{ {