{ pkgs, lib }: let mkTf2Config = pkgs.callPackage ../mkTf2Config.nix {}; fetchFromGameBanana = { id , hash }: pkgs.fetchzip { url = "https://gamebanana.com/dl/${id}"; extension = "zip"; inherit hash; }; 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; }; in lib.mergeAttrsList [ extra-args { mastercomfig = pkgs.callPackage ./mastercomfig.nix extra-args; } (pkgs.callPackage ./huds.nix extra-args) (pkgs.callPackage ./misc.nix extra-args) (pkgs.callPackage ./scripts.nix extra-args) ]