feat: grimorie (deadlock mod manager) #12

Merged
nikkuss merged 5 commits from grimorie into main 2026-05-29 17:36:14 +04:00
Showing only changes of commit c2e51153c5 - Show all commits
+66 -67
View File
@@ -12,8 +12,7 @@
makeWrapper, makeWrapper,
electron_39, electron_39,
sqlite, sqlite,
}: }: let
let
version = "1.13.1"; version = "1.13.1";
src = fetchFromGitHub { src = fetchFromGitHub {
4
@@ -42,88 +41,88 @@ let
sha256 = "6860a989335afec0aa19544cf30cbebac9dc6b88af3f3a8d9c3340a6435fa045"; sha256 = "6860a989335afec0aa19544cf30cbebac9dc6b88af3f3a8d9c3340a6435fa045";
}; };
in in
Outdated
Review

why

why
Outdated
Review

mrweow

mrweow
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "grimoire"; pname = "grimoire";
inherit version src; inherit version src;
nativeBuildInputs = [ nativeBuildInputs = [
nodejs_22 nodejs_22
pnpm pnpm
pnpm.configHook pnpm.configHook
python3 python3
gcc gcc
gnumake gnumake
pkg-config pkg-config
makeWrapper makeWrapper
electron_39 electron_39
]; ];
buildInputs = [ buildInputs = [
sqlite sqlite
]; ];
inherit pnpmDeps; inherit pnpmDeps;
env.GRIMOIRE_SOCIAL_BASE_URL = "https://grimoire-social.slusheliott.workers.dev"; env.GRIMOIRE_SOCIAL_BASE_URL = "https://grimoire-social.slusheliott.workers.dev";
postPatch = '' postPatch = ''
cp -r ${grimoire-social-src} ../grimoire-social cp -r ${grimoire-social-src} ../grimoire-social
chmod -R u+w ../grimoire-social chmod -R u+w ../grimoire-social
mkdir -p resources/vpkmerge mkdir -p resources/vpkmerge
cp ${vpkmerge-bin} resources/vpkmerge/vpkmerge-linux-x86_64 cp ${vpkmerge-bin} resources/vpkmerge/vpkmerge-linux-x86_64
chmod +x resources/vpkmerge/vpkmerge-linux-x86_64 chmod +x resources/vpkmerge/vpkmerge-linux-x86_64
''; '';
buildPhase = '' buildPhase = ''
runHook preBuild runHook preBuild
mkdir -p ../grimoire-social/node_modules mkdir -p ../grimoire-social/node_modules
ln -sfn "$(realpath node_modules/zod)" ../grimoire-social/node_modules/zod ln -sfn "$(realpath node_modules/zod)" ../grimoire-social/node_modules/zod
( (
cd node_modules/better-sqlite3 cd node_modules/better-sqlite3
HOME="$TMPDIR" node \ HOME="$TMPDIR" node \
"${nodejs_22}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" \ "${nodejs_22}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" \
rebuild \ rebuild \
--nodedir="${electron_39.headers}" --nodedir="${electron_39.headers}"
) )
pnpm exec electron-vite build pnpm exec electron-vite build
runHook postBuild runHook postBuild
''; '';
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
mkdir -p $out/lib/grimoire mkdir -p $out/lib/grimoire
cp -r dist $out/lib/grimoire/dist cp -r dist $out/lib/grimoire/dist
mkdir -p $out/lib/grimoire/resources mkdir -p $out/lib/grimoire/resources
cp -r resources/vpkmerge $out/lib/grimoire/resources/vpkmerge cp -r resources/vpkmerge $out/lib/grimoire/resources/vpkmerge
echo '{"name":"grimoire","version":"${version}","main":"dist/main/index.js"}' \ echo '{"name":"grimoire","version":"${version}","main":"dist/main/index.js"}' \
> $out/lib/grimoire/package.json > $out/lib/grimoire/package.json
cp -r node_modules $out/lib/grimoire/node_modules cp -r node_modules $out/lib/grimoire/node_modules
rm -rf "$out/lib/grimoire/node_modules/@grimoire" rm -rf "$out/lib/grimoire/node_modules/@grimoire"
find "$out/lib/grimoire/node_modules" -type l | while read -r link; do find "$out/lib/grimoire/node_modules" -type l | while read -r link; do
[ -e "$link" ] || rm -f "$link" [ -e "$link" ] || rm -f "$link"
done done
mkdir -p $out/bin mkdir -p $out/bin
makeWrapper ${electron_39}/bin/electron $out/bin/grimoire \ makeWrapper ${electron_39}/bin/electron $out/bin/grimoire \
--add-flags "$out/lib/grimoire" \ --add-flags "$out/lib/grimoire" \
--set ELECTRON_RESOURCES_PATH "$out/lib/grimoire" \ --set ELECTRON_RESOURCES_PATH "$out/lib/grimoire" \
--set NODE_ENV production --set NODE_ENV production
runHook postInstall runHook postInstall
''; '';
meta = { meta = {
description = "Grimoire Electron-based mod manager"; description = "Grimoire Electron-based mod manager";
platforms = [ "x86_64-linux" ]; platforms = ["x86_64-linux"];
}; };
} }