(fix): nix flake

This commit is contained in:
Alois 2026-07-29 23:18:49 +02:00
commit 33ea5a12d5
Signed by: alois
SSH key fingerprint: SHA256:GBzT2DXvAuGV9XIV5W3WrzVpjU54FThmxHXdbz95J24
2 changed files with 38 additions and 38 deletions

View file

@ -25,7 +25,10 @@ export default defineConfig(({ command }) => ({
tailwindcss(), tailwindcss(),
react(), react(),
methaniumUi({ defaultThemeId: "methanium" }), methaniumUi({ defaultThemeId: "methanium" }),
mtp({ typeMaps: "./type-maps.yaml" }) as Plugin, mtp({
typeMaps: "./type-maps.yaml",
wasmPackArgs: command === "build" ? ["--mode", "no-install"] : undefined,
}) as Plugin,
], ],
resolve: { resolve: {
alias: { alias: {

View file

@ -32,6 +32,24 @@
rustToolchain = pkgs.rust-bin.stable.latest.default.override { rustToolchain = pkgs.rust-bin.stable.latest.default.override {
targets = [ "wasm32-unknown-unknown" ]; targets = [ "wasm32-unknown-unknown" ];
}; };
wasmBindgenCli = pkgs.rustPlatform.buildRustPackage rec {
pname = "wasm-bindgen-cli";
version = "0.2.126";
src = pkgs.fetchCrate {
inherit pname version;
hash = "sha256-H6Is3fiZVxZCfOMWK5dWMSrtn50VGv0sfdnsT+cTtyk=";
};
cargoHash = "sha256-VucqkXbCi4qtQzY/HrXiDnbSURsagPsdNVMn1Tw3UiY=";
doCheck = false;
};
mtpSource = pkgs.fetchzip {
url = "https://git.methanium.net/methanium/mtp/releases/download/0.2.0-dev-a692bed/mtp-0.2.0.tgz";
hash = "sha256-RIk4zhSkKg9jpeEoXNlRzSIZiOsNTEX/1mXVu1m/9rY=";
};
mtpCargoDeps = pkgs.rustPlatform.fetchCargoVendor {
src = mtpSource;
hash = "sha256-jNQdhihszzQ3lcDk7WC3D6tigluhKPohAlNaTm77yuU=";
};
source = pkgs.lib.cleanSourceWith { source = pkgs.lib.cleanSourceWith {
src = ./.; src = ./.;
filter = filter =
@ -46,64 +64,43 @@
&& relative != "result"; && relative != "result";
}; };
frontendNativeBuildInputs = [ frontendNativeBuildInputs = [
pkgs.binaryen
pkgs.cacert pkgs.cacert
pkgs.git pkgs.git
pkgs.nodejs pkgs.nodejs
pkgs.pnpm pkgs.pnpm
pkgs.wasm-pack pkgs.wasm-pack
rustToolchain rustToolchain
wasmBindgenCli
]; ];
frontendDeps = pkgs.stdenvNoCC.mkDerivation { frontendDeps = pkgs.fetchPnpmDeps {
pname = "methanium-status-frontend-deps"; pname = "methanium-status-frontend-deps";
version = "0.1.0"; version = "0.1.0";
src = source; src = source;
nativeBuildInputs = frontendNativeBuildInputs; pnpm = pkgs.pnpm;
outputHashAlgo = "sha256"; fetcherVersion = 4;
outputHashMode = "recursive"; hash = "sha256-/cyB6+R0kELjIjcZAwqn0OFI0j3s4Jw+/dCbpcYbx8U=";
outputHash = "sha256-hyNuty4/6MvRxnGIOVsqdUC0B1+LL4yGDjNUkDAUDPY=";
dontFixup = true;
__structuredAttrs = true;
unsafeDiscardReferences.out = true;
buildPhase = ''
runHook preBuild
export HOME="$TMPDIR/home"
export CARGO_HOME="$TMPDIR/cargo"
mkdir -p "$HOME"
pnpm install --frozen-lockfile
patchShebangs node_modules
pnpm build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p "$out/apps/frontend"
cp -a node_modules "$out/node_modules"
cp -a apps/frontend/node_modules "$out/apps/frontend/node_modules"
cp -a "$CARGO_HOME" "$out/cargo"
cp -a "$HOME/.cache/.wasm-pack" "$out/wasm-pack"
runHook postInstall
'';
}; };
frontend = pkgs.stdenvNoCC.mkDerivation { frontend = pkgs.stdenvNoCC.mkDerivation {
pname = "methanium-status-frontend"; pname = "methanium-status-frontend";
version = "0.1.0"; version = "0.1.0";
src = source; src = source;
nativeBuildInputs = frontendNativeBuildInputs; nativeBuildInputs = frontendNativeBuildInputs ++ [ pkgs.pnpmConfigHook ];
pnpmDeps = frontendDeps;
buildPhase = '' buildPhase = ''
runHook preBuild runHook preBuild
cp -a ${frontendDeps}/node_modules .
cp -a ${frontendDeps}/apps/frontend/node_modules apps/frontend/node_modules
cp -a ${frontendDeps}/cargo "$TMPDIR/cargo"
chmod -R u+w node_modules apps/frontend/node_modules "$TMPDIR/cargo"
export HOME="$TMPDIR/home" export HOME="$TMPDIR/home"
export CARGO_HOME="$TMPDIR/cargo" export CARGO_HOME="$TMPDIR/cargo"
export CARGO_NET_OFFLINE=true export CARGO_NET_OFFLINE=true
mkdir -p "$HOME/.cache" mkdir -p "$CARGO_HOME"
cp -a ${frontendDeps}/wasm-pack "$HOME/.cache/.wasm-pack" cat > "$CARGO_HOME/config.toml" <<EOF
chmod -R u+w "$HOME/.cache/.wasm-pack" [source.crates-io]
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "${mtpCargoDeps}/source-registry-0"
EOF
pnpm build pnpm build
runHook postBuild runHook postBuild
''; '';