mirror of
https://codeberg.org/spire/nix.git
synced 2026-08-02 04:14:47 +02:00
replace with customize helper
This commit is contained in:
parent
b6860cbb15
commit
d96d2bbb9b
6 changed files with 51 additions and 51 deletions
|
|
@ -58,10 +58,12 @@
|
|||
]
|
||||
// {
|
||||
test = pkgs:
|
||||
(pkgs.srcds-tf2.withConfig
|
||||
{
|
||||
pkgs.srcds-tf2.customize {
|
||||
cfg = {
|
||||
hostname = "Spire Server";
|
||||
}).withSourcemod {};
|
||||
};
|
||||
sourcemod = true;
|
||||
};
|
||||
testScript = pkgs:
|
||||
pkgs.buildSourcePawnScript {
|
||||
name = "test";
|
||||
|
|
|
|||
|
|
@ -49,8 +49,6 @@ in
|
|||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
mv package $out/share
|
||||
cp -r $src $out/include
|
||||
mv package $out
|
||||
'';
|
||||
})
|
||||
|
|
|
|||
|
|
@ -63,8 +63,7 @@ in
|
|||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
mv package $out/share
|
||||
mv package $out
|
||||
'';
|
||||
|
||||
passthru.updateScript = writeScript "update-sourcemod" ''
|
||||
|
|
|
|||
23
nix/srcds/addons.nix
Normal file
23
nix/srcds/addons.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
symlinkJoin,
|
||||
sourcemod-builder,
|
||||
metamod-source-builder,
|
||||
gamedir,
|
||||
hl2sdk,
|
||||
sdk,
|
||||
}: let
|
||||
sdks = {
|
||||
${sdk} = hl2sdk.${sdk};
|
||||
};
|
||||
metaModSdk = metamod-source-builder sdks;
|
||||
sourceModSdk = sourcemod-builder sdks;
|
||||
in
|
||||
symlinkJoin {
|
||||
name = "srcds-tf2-src-addons";
|
||||
paths = [metaModSdk sourceModSdk];
|
||||
postBuild = ''
|
||||
mv $out tmp
|
||||
mkdir $out
|
||||
mv tmp $out/${gamedir}
|
||||
'';
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
lib,
|
||||
cfg,
|
||||
gamedir,
|
||||
name,
|
||||
writeTextDir,
|
||||
}: let
|
||||
|
|
@ -8,4 +9,4 @@
|
|||
lines = mapAttrsToList (key: value: ''${key} "${value}"'') cfg;
|
||||
text = concatStringsSep "\n" lines;
|
||||
in
|
||||
writeTextDir "tf/cfg/${name}" text
|
||||
writeTextDir "${gamedir}/cfg/${name}" text
|
||||
|
|
|
|||
|
|
@ -12,14 +12,12 @@
|
|||
system,
|
||||
callPackage,
|
||||
depots,
|
||||
sourcemod-builder,
|
||||
metamod-source-builder,
|
||||
gamedir,
|
||||
hl2sdk,
|
||||
sdk,
|
||||
writeTextDir,
|
||||
}: let
|
||||
inherit (lib) importJSON map toString elem last replaceStrings naturalSort filter any;
|
||||
inherit (lib) importJSON map toString elem last replaceStrings naturalSort filter any optionals;
|
||||
depotInputs = importJSON ./depots.json;
|
||||
fetchSupported = elem system depotdownloader.meta.platforms;
|
||||
fetcher = input:
|
||||
|
|
@ -69,48 +67,13 @@
|
|||
}
|
||||
);
|
||||
|
||||
makeWithConfig = base: config: let
|
||||
configFile = callPackage ./cfg.nix {
|
||||
name = "server.cfg";
|
||||
cfg = config;
|
||||
};
|
||||
final = symlinkJoin {
|
||||
name = "srcds-tf2-src";
|
||||
paths = [base configFile];
|
||||
passthru = makeWiths final;
|
||||
};
|
||||
in
|
||||
final;
|
||||
makeWithSourcemod = base: {}: let
|
||||
sdks = {
|
||||
${sdk} = hl2sdk.${sdk};
|
||||
};
|
||||
metaModSdk = metamod-source-builder sdks;
|
||||
sourceModSdk = sourcemod-builder sdks;
|
||||
final = symlinkJoin {
|
||||
name = "srcds-tf2-src";
|
||||
paths = [base metaModSdk sourceModSdk];
|
||||
passthru = makeWiths final;
|
||||
postBuild = ''
|
||||
mv $out/share/cfg/* $out/tf/cfg/
|
||||
mv $out/share/addons $out/tf/addons
|
||||
|
||||
rm -r $out/include $out/share
|
||||
'';
|
||||
};
|
||||
in
|
||||
final;
|
||||
makeWiths = base: {
|
||||
withConfig = makeWithConfig base;
|
||||
withSourcemod = makeWithSourcemod base;
|
||||
};
|
||||
addons = callPackage ./addons.nix {inherit sdk gamedir;};
|
||||
|
||||
mainProgram =
|
||||
if system == "x86_64-linux"
|
||||
then "srcds_run_64"
|
||||
else "srcds_run";
|
||||
|
||||
final = stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
base = stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "srcds-tf2";
|
||||
version = timeToVersion time;
|
||||
inherit src;
|
||||
|
|
@ -142,7 +105,21 @@
|
|||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru = makeWiths final;
|
||||
passthru = {
|
||||
customize = {
|
||||
cfg ? {},
|
||||
sourcemod ? false,
|
||||
}: let
|
||||
configFile = callPackage ./cfg.nix {
|
||||
name = "server.cfg";
|
||||
inherit cfg gamedir;
|
||||
};
|
||||
in
|
||||
symlinkJoin {
|
||||
name = "srcds-tf2-src-sourcemod";
|
||||
paths = [base configFile] ++ (optionals sourcemod [addons]);
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
inherit mainProgram;
|
||||
|
|
@ -157,4 +134,4 @@
|
|||
};
|
||||
});
|
||||
in
|
||||
final
|
||||
base
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue