From df1b87e3ac50d4e54c85000a4714c86fd3004e99 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 4 Sep 2025 12:12:23 +0300 Subject: [PATCH] chore(dx/nix): fix flake partially --- flake.nix | 32 ++++++++++++++++---------------- scripts/utils.mts | 12 +++++++++--- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/flake.nix b/flake.nix index ccf7c7b5a..d819195be 100644 --- a/flake.nix +++ b/flake.nix @@ -36,6 +36,7 @@ stdenv wrapGAppsHook3 xcodebuild + which ; fullCleanSourceFilter = @@ -46,8 +47,7 @@ baseName = baseNameOf (toString name); in # No need to copy the flake. - # Don't copy local development instance of NX cache. - baseName != "flake.nix" && baseName != "flake.lock" && baseName != ".nx" + baseName != "flake.nix" && baseName != "flake.lock" ); fullCleanSource = src: @@ -93,19 +93,15 @@ postConfigure = '' - chmod +x node_modules/.pnpm/electron@*/node_modules/electron/install.js + chmod +x node_modules/electron/install.js patchShebangs --build node_modules - '' - + lib.optionalString stdenv.hostPlatform.isLinux '' - patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ - node_modules/.pnpm/sass-embedded-linux-x64@*/node_modules/sass-embedded-linux-x64/dart-sass/src/dart ''; extraNativeBuildInputs = [ moreutils # sponge nodejs.python - removeReferencesTo + removeReferencesTo ] ++ lib.optionals (app == "desktop") [ copyDesktopItems @@ -113,6 +109,10 @@ # https://github.com/NixOS/nixpkgs/issues/172583 makeShellWrapper wrapGAppsHook3 + + # For determining the Electron version to rebuild for: + which + electron ] ++ lib.optionals (app == "server") [ makeBinaryWrapper @@ -129,7 +129,7 @@ ${preBuildCommands} ''; - scriptFull = "pnpm nx ${buildTask} --outputStyle stream --verbose"; + scriptFull = "pnpm run ${buildTask}"; installPhase = '' runHook preInstall @@ -181,12 +181,12 @@ desktop = makeApp { app = "desktop"; - preBuildCommands = "export npm_config_nodedir=${electron.headers}"; - buildTask = "run desktop:rebuild-deps"; + preBuildCommands = "export npm_config_nodedir=${electron.headers}; pnpm postinstall"; + buildTask = "desktop:build"; mainProgram = "trilium"; installCommands = '' - remove-references-to -t ${electron.headers} apps/desktop/dist/node_modules/better-sqlite3/build/config.gypi - remove-references-to -t ${nodejs.python} apps/desktop/dist/node_modules/better-sqlite3/build/config.gypi + #remove-references-to -t ${electron.headers} apps/desktop/dist/node_modules/better-sqlite3/build/config.gypi + #remove-references-to -t ${nodejs.python} apps/desktop/dist/node_modules/better-sqlite3/build/config.gypi mkdir -p $out/{bin,share/icons/hicolor/512x512/apps,opt/trilium} cp --archive apps/desktop/dist/* $out/opt/trilium @@ -203,11 +203,11 @@ server = makeApp { app = "server"; preBuildCommands = "pushd apps/server; pnpm rebuild; popd"; - buildTask = "--project=server build"; + buildTask = "server:build"; mainProgram = "trilium-server"; installCommands = '' - remove-references-to -t ${nodejs.python} apps/server/dist/node_modules/better-sqlite3/build/config.gypi - remove-references-to -t ${pnpm} apps/server/dist/node_modules/better-sqlite3/build/config.gypi + #remove-references-to -t ${nodejs.python} apps/server/dist/node_modules/better-sqlite3/build/config.gypi + #remove-references-to -t ${pnpm} apps/server/dist/node_modules/better-sqlite3/build/config.gypi pushd apps/server/dist rm -rf node_modules/better-sqlite3/build/Release/obj \ diff --git a/scripts/utils.mts b/scripts/utils.mts index 65b1bad6e..8490b50fd 100644 --- a/scripts/utils.mts +++ b/scripts/utils.mts @@ -1,11 +1,17 @@ import { execSync } from "child_process"; -import { readFileSync } from "fs"; +import { existsSync, readFileSync } from "fs"; import { platform } from "os"; export function isNixOS() { if (platform() !== "linux") return false; - const osReleaseFile = readFileSync("/etc/os-release", "utf-8"); - return osReleaseFile.includes("ID=nixos"); + + const osReleasePath = "/etc/os-release"; + if (existsSync(osReleasePath)) { + const osReleaseFile = readFileSync(osReleasePath, "utf-8"); + return osReleaseFile.includes("ID=nixos"); + } else { + return !!process.env.NIX_STORE; + } } function resetPath() {