diff --git a/pkgs/tools/misc/sshx/default.nix b/pkgs/tools/misc/sshx/default.nix index d9d37e50c472..9ae65dcaee1c 100644 --- a/pkgs/tools/misc/sshx/default.nix +++ b/pkgs/tools/misc/sshx/default.nix @@ -5,6 +5,7 @@ , protobuf , darwin , stdenv +, buildNpmPackage }: let version = "unstable-2023-11-23"; @@ -45,8 +46,34 @@ in cargoHash = "sha256-dA5Aen/qANW8si75pj/RsBknvOo3KDyU5UISAmmcfRE="; }; - sshx-server = mkSshxPackage { + sshx-server = mkSshxPackage rec { pname = "sshx-server"; cargoHash = "sha256-1GRWCMXsOzqvORgtwfuywV4wLyX3r4nURhM3Dl5V9Ss="; + + postPatch = '' + substituteInPlace crates/sshx-server/src/web.rs \ + --replace 'ServeDir::new("build")' 'ServeDir::new("${passthru.web.outPath}")' \ + --replace 'ServeFile::new("build/spa.html")' 'ServeFile::new("${passthru.web.outPath}/spa.html")' + ''; + + passthru.web = buildNpmPackage { + pname = "sshx-web"; + + inherit + version + src; + + postPatch = '' + substituteInPlace vite.config.ts \ + --replace 'execSync("git rev-parse --short HEAD").toString().trim()' '"${src.rev}"' + ''; + + npmDepsHash = "sha256-bKePCxo6+n0EG+4tbbMimPedJ0Hu1O8yZsgspmhobOs="; + + installPhase = '' + mkdir -p "$out" + cp -r build/* "$out" + ''; + }; }; }