This commit is contained in:
Robin Appelman 2024-01-03 21:50:41 +01:00
commit 78abe9bb27
6 changed files with 48 additions and 18 deletions

View file

@ -36,6 +36,7 @@ cgmath = "0.18.0"
bytemuck = { version = "1.14.0", features = ["derive"] }
texpresso = { version = "2.0.1", features = ["rayon"] }
serde = "1.0.193"
ahash = "0.8.6"
url = { version = "2.5.0", optional = true, features = ["serde"] }
toml = { version = "0.8.8", optional = true }
@ -45,10 +46,9 @@ reqwest = { version = "0.11.23", optional = true, default-features = false, feat
async-tempfile = { version = "0.5.0", optional = true }
tower-http = { version = "0.5.0", optional = true, features = ["cors"] }
http = { version = "1.0.0", optional = true }
ahash = { version = "0.8.6", optional = true }
[features]
server = ["url", "toml", "axum", "tokio", "reqwest", "async-tempfile", "tower-http", "http", "ahash"]
server = ["url", "toml", "axum", "tokio", "reqwest", "async-tempfile", "tower-http", "http"]
[profile.dev.package."*"]
opt-level = 2

9
assets.nix Normal file
View file

@ -0,0 +1,9 @@
{fetchSteam}:
fetchSteam {
name = "tf2-vpks";
appId = "440";
depotId = "441";
manifestId = "5382461088476630278"; # 22 December 2023 00:13:59 UTC
hash = "sha256-p8waSdyFTKSo7CKQAjAGhL4hGiacjU0M59z47VH1NwM=";
fileList = ["regex:(tf2|hl2)_(misc|textures)_.*\.vpk"];
}

View file

@ -30,6 +30,7 @@
overlays = [
steam-fetcher.overlays.default
(import rust-overlay)
(import ./overlay.nix)
];
pkgs = (import nixpkgs) {
inherit system overlays;
@ -105,20 +106,14 @@
'';
GLTFPACK = "${pkgs.meshoptimizer}/bin/gltfpack";
});
assets = pkgs.fetchSteam {
name = "tf2-vpks";
appId = "440";
depotId = "441";
manifestId = "5382461088476630278"; # 22 December 2023 00:13:59 UTC
hash = "sha256-p8waSdyFTKSo7CKQAjAGhL4hGiacjU0M59z47VH1NwM=";
fileList = ["regex:(tf2|hl2)_(misc|textures)_.*\.vpk"];
};
assets = pkgs.vbsp-server-assets;
server-with-assets = server.overrideAttrs (old: {
buildInputs = server.buildInputs ++ [pkgs.makeWrapper];
postInstall = ''
wrapProgram "$out/bin/vbsp-server" --set TF_DIR "${assets}"
'';
});
vbsp-server = pkgs.vbsp-server;
default = vbsp-to-gltf;
};
@ -142,5 +137,8 @@
nativeBuildInputs = [msrvToolchain] ++ tools;
};
};
});
})
// {
overlays.default = import ./overlay.nix;
};
}

4
overlay.nix Normal file
View file

@ -0,0 +1,4 @@
prev: final: {
vbsp-server = final.callPackage ./package.nix {};
vbsp-server-assets = final.callPackage ./assets.nix {};
}

19
package.nix Normal file
View file

@ -0,0 +1,19 @@
{
stdenv,
rustPlatform,
lib,
}: let
inherit (lib.sources) sourceByRegex;
src = sourceByRegex ./. ["Cargo.*" "(src|derive|benches|tests|examples.*)(/.*)?"];
in
rustPlatform.buildRustPackage rec {
name = "vbsp-server";
version = "0.1.0";
inherit src;
cargoLock = {
lockFile = ./Cargo.lock;
};
buildFeatures = [ "server" ];
}

View file

@ -44,7 +44,7 @@ fn default_port() -> u16 {
}
#[derive(Debug, Error)]
enum ServerError {
pub enum ServerError {
#[error(transparent)]
Convert(#[from] vbsp_to_gltf::Error),
#[error(transparent)]