airi/nix/package.nix
Weathercold d9dd2862e9
chore(ci): Remove CI concurrency group & small fixes (#1758)
## Description

<!-- Please insert your description here and especially provide info
about the "what" this PR is solving -->

It has no effect. The actions are run in parallel anyway. They have been
previously updated to not fail when run in parallel.

## Linked Issues

<!-- Optional, if you have any -->

## Additional Context

<!-- e.g. is there anything you'd like reviewers to focus on? -->
2026-05-04 06:37:35 +08:00

90 lines
2 KiB
Nix

{
stdenvNoCC,
callPackage,
copyDesktopItems,
makeDesktopItem,
makeWrapper,
gitMinimal,
pnpm_10,
pnpmConfigHook,
asar,
electron,
nodejs,
}:
(callPackage ./common.nix { }).overrideAttrs (final: {
nativeBuildInputs = [
asar
copyDesktopItems
makeWrapper
gitMinimal
nodejs
pnpm_10
pnpmConfigHook
];
desktopItems = [
(makeDesktopItem {
desktopName = "AIRI";
comment = final.meta.description;
categories = [
"AudioVideo"
"Amusement"
];
exec = final.meta.mainProgram;
icon = final.meta.mainProgram;
name = final.meta.mainProgram;
})
];
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
configurePhase = ''
runHook preConfigure
echo Setting up asset cache
ln -s "$assets" .cache
mkdir apps/stage-tamagotchi/src/renderer/.cache
ln -s "$assets" apps/stage-tamagotchi/src/renderer/.cache/assets
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
pnpm run build:packages
cd apps/stage-tamagotchi
pnpm run build
pnpm exec electron-builder build \
--dir --${if stdenvNoCC.isLinux then "linux" else "mac"} \
-c.electronDist="${electron.dist}" \
-c.electronVersion="${electron.version}"
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p "$out/opt"
cp -r dist/*-unpacked "$out/opt/AIRI"
# The icon is actually 1500x1500... install it anyway
install -Dm644 resources/icon.png "$out/share/icons/hicolor/64x64/apps/airi.png"
# Patch the asar to include the assets
cd "$out/opt/AIRI/resources"
asar extract app.asar app
rm -r app.asar.unpacked
cp -r "$assets"/{vrm,live2d} app/out/renderer/assets
asar pack app app.asar
makeWrapper "${electron}/bin/electron" "$out/bin/airi" \
--add-flags "$out/opt/AIRI/resources/app.asar" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-wayland-ime=true --wayland-text-input-version=3}}"
runHook postInstall
'';
})