package viewer

This commit is contained in:
Robin Appelman 2024-09-02 14:52:57 +02:00
commit 2b8fe0e74f
5 changed files with 46 additions and 0 deletions

17
flake.lock generated
View file

@ -58,11 +58,28 @@
"type": "indirect" "type": "indirect"
} }
}, },
"npmlock2nix": {
"flake": false,
"locked": {
"lastModified": 1673447413,
"narHash": "sha256-sJM82Sj8yfQYs9axEmGZ9Evzdv/kDcI9sddqJ45frrU=",
"owner": "nix-community",
"repo": "npmlock2nix",
"rev": "9197bbf397d76059a76310523d45df10d2e4ca81",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "npmlock2nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"cross-naersk": "cross-naersk", "cross-naersk": "cross-naersk",
"naersk": "naersk", "naersk": "naersk",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"npmlock2nix": "npmlock2nix",
"rust-overlay": "rust-overlay", "rust-overlay": "rust-overlay",
"steam-fetcher": "steam-fetcher", "steam-fetcher": "steam-fetcher",
"utils": "utils" "utils": "utils"

View file

@ -14,6 +14,8 @@
url = "github:nix-community/steam-fetcher"; url = "github:nix-community/steam-fetcher";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
npmlock2nix.url = "github:nix-community/npmlock2nix";
npmlock2nix.flake = false;
}; };
outputs = { outputs = {
@ -24,12 +26,16 @@
rust-overlay, rust-overlay,
cross-naersk, cross-naersk,
steam-fetcher, steam-fetcher,
npmlock2nix,
}: }:
utils.lib.eachDefaultSystem (system: let utils.lib.eachDefaultSystem (system: let
overlays = [ overlays = [
steam-fetcher.overlays.default steam-fetcher.overlays.default
(import rust-overlay) (import rust-overlay)
(import ./overlay.nix) (import ./overlay.nix)
(final: prev: {
npmlock2nix = final.callPackage npmlock2nix {};
})
]; ];
pkgs = (import nixpkgs) { pkgs = (import nixpkgs) {
inherit system overlays; inherit system overlays;
@ -106,6 +112,7 @@
GLTFPACK = "${pkgs.meshoptimizer}/bin/gltfpack"; GLTFPACK = "${pkgs.meshoptimizer}/bin/gltfpack";
}); });
assets = pkgs.vbsp-server-assets; assets = pkgs.vbsp-server-assets;
viewer = pkgs.vbsp-server-viewer;
server-with-assets = server.overrideAttrs (old: { server-with-assets = server.overrideAttrs (old: {
buildInputs = server.buildInputs ++ [pkgs.makeWrapper]; buildInputs = server.buildInputs ++ [pkgs.makeWrapper];
postInstall = '' postInstall = ''

View file

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

View file

@ -3,6 +3,7 @@
rust-bin, rust-bin,
makeRustPlatform, makeRustPlatform,
meshoptimizer, meshoptimizer,
vbsp-server-viewer,
lib, lib,
}: let }: let
toolchain = rust-bin.stable.latest.default; toolchain = rust-bin.stable.latest.default;
@ -21,6 +22,10 @@ in
inherit src; inherit src;
postPatch = ''
cp -r ${vbsp-server-viewer} src/server/viewer/dist
'';
doCheck = false; doCheck = false;
cargoLock = { cargoLock = {

16
viewer.nix Normal file
View file

@ -0,0 +1,16 @@
{
npmlock2nix,
nodejs_20,
lib,
}: let
inherit (lib.sources) sourceByRegex;
in npmlock2nix.v2.build rec {
pname = "vbsp-server-viewer";
version = "0.1.0";
src = ./src/server/viewer;
nodejs = nodejs_20;
installPhase = "cp -r dist $out";
buildCommands = ["npm run build"];
}