mirror of
https://codeberg.org/spire/nix.git
synced 2026-08-02 12:25:00 +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:
|
test = pkgs:
|
||||||
(pkgs.srcds-tf2.withConfig
|
pkgs.srcds-tf2.customize {
|
||||||
{
|
cfg = {
|
||||||
hostname = "Spire Server";
|
hostname = "Spire Server";
|
||||||
}).withSourcemod {};
|
};
|
||||||
|
sourcemod = true;
|
||||||
|
};
|
||||||
testScript = pkgs:
|
testScript = pkgs:
|
||||||
pkgs.buildSourcePawnScript {
|
pkgs.buildSourcePawnScript {
|
||||||
name = "test";
|
name = "test";
|
||||||
|
|
|
||||||
|
|
@ -49,8 +49,6 @@ in
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir $out
|
mv package $out
|
||||||
mv package $out/share
|
|
||||||
cp -r $src $out/include
|
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -63,8 +63,7 @@ in
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir $out
|
mv package $out
|
||||||
mv package $out/share
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru.updateScript = writeScript "update-sourcemod" ''
|
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,
|
lib,
|
||||||
cfg,
|
cfg,
|
||||||
|
gamedir,
|
||||||
name,
|
name,
|
||||||
writeTextDir,
|
writeTextDir,
|
||||||
}: let
|
}: let
|
||||||
|
|
@ -8,4 +9,4 @@
|
||||||
lines = mapAttrsToList (key: value: ''${key} "${value}"'') cfg;
|
lines = mapAttrsToList (key: value: ''${key} "${value}"'') cfg;
|
||||||
text = concatStringsSep "\n" lines;
|
text = concatStringsSep "\n" lines;
|
||||||
in
|
in
|
||||||
writeTextDir "tf/cfg/${name}" text
|
writeTextDir "${gamedir}/cfg/${name}" text
|
||||||
|
|
|
||||||
|
|
@ -12,14 +12,12 @@
|
||||||
system,
|
system,
|
||||||
callPackage,
|
callPackage,
|
||||||
depots,
|
depots,
|
||||||
sourcemod-builder,
|
|
||||||
metamod-source-builder,
|
|
||||||
gamedir,
|
gamedir,
|
||||||
hl2sdk,
|
hl2sdk,
|
||||||
sdk,
|
sdk,
|
||||||
writeTextDir,
|
writeTextDir,
|
||||||
}: let
|
}: 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;
|
depotInputs = importJSON ./depots.json;
|
||||||
fetchSupported = elem system depotdownloader.meta.platforms;
|
fetchSupported = elem system depotdownloader.meta.platforms;
|
||||||
fetcher = input:
|
fetcher = input:
|
||||||
|
|
@ -69,48 +67,13 @@
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
makeWithConfig = base: config: let
|
addons = callPackage ./addons.nix {inherit sdk gamedir;};
|
||||||
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;
|
|
||||||
};
|
|
||||||
|
|
||||||
mainProgram =
|
mainProgram =
|
||||||
if system == "x86_64-linux"
|
if system == "x86_64-linux"
|
||||||
then "srcds_run_64"
|
then "srcds_run_64"
|
||||||
else "srcds_run";
|
else "srcds_run";
|
||||||
|
base = stdenvNoCC.mkDerivation (finalAttrs: {
|
||||||
final = stdenvNoCC.mkDerivation (finalAttrs: {
|
|
||||||
pname = "srcds-tf2";
|
pname = "srcds-tf2";
|
||||||
version = timeToVersion time;
|
version = timeToVersion time;
|
||||||
inherit src;
|
inherit src;
|
||||||
|
|
@ -142,7 +105,21 @@
|
||||||
runHook postInstall
|
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; {
|
meta = with lib; {
|
||||||
inherit mainProgram;
|
inherit mainProgram;
|
||||||
|
|
@ -157,4 +134,4 @@
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
in
|
in
|
||||||
final
|
base
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue