Files
tf2-nix/tf2/packages/default.nix
2025-04-11 11:36:57 -06:00

47 lines
1.1 KiB
Nix

{ pkgs, lib }:
let
mkTf2Config = pkgs.callPackage ../mkTf2Config.nix {};
fetchFromGameBanana =
{ id
, hash
, name ? "source"
}:
pkgs.fetchzip {
url = "https://gamebanana.com/dl/${id}";
extension = "zip";
inherit hash name;
};
mkCfg = name: body:
pkgs.runCommand name {} ''
${lib.toShellVar "name" name}
mkdir -p $out/cfg "$(dirname "$out/cfg/$name")"
tee "$out/cfg/$name.cfg" << SUPER_UNIQUE_EOF
// Generated by tf2.nix
${body}
SUPER_UNIQUE_EOF
'';
mergeTf2Configs = configs:
pkgs.symlinkJoin {
name = "merged-tf2-config";
paths = configs;
};
extra-args = {
inherit mkTf2Config fetchFromGameBanana mkCfg mergeTf2Configs callPackage;
};
callPackage = lib.callPackageWith (pkgs // extra-args);
in lib.mergeAttrsList [
{ inherit mkTf2Config fetchFromGameBanana mkCfg mergeTf2Configs; }
{ mastercomfig = callPackage ./mastercomfig.nix {}; }
{ huds = callPackage ./huds {}; }
{ maps = callPackage ./maps.nix {}; }
(callPackage ./misc.nix {})
(callPackage ./scripts.nix {})
]