Some checks failed
Desktop Release / Build Linux (AppImage + deb) (push) Successful in 13m34s
CI / Build & test (Node 22) (push) Has been cancelled
CI / Build & test (Node 24) (push) Has been cancelled
CI / Pack & boot smoke (Node 22) (push) Has been cancelled
CI / No em/en dashes (push) Has been cancelled
- Fenêtre principale : icône explicite (resolveIconPath partagé dans paths.ts, réutilisé par le tray) pour afficher le logo Arboretum en fenêtre/barre des tâches au lieu de l'icône Electron générique. - package.json desktop : homepage -> https://git-arboretum.com (la vitrine, plus le dépôt Gitea) et champ license: MIT. Copyright daté avec le nom dans electron-builder.yml. Licence MIT + author aussi au package.json racine. - desktop-release.yml : attache des assets idempotente (supprime l'asset de même nom avant ré-upload) pour que le dernier build gagne sur un re-run.
36 lines
1.5 KiB
TypeScript
36 lines
1.5 KiB
TypeScript
import { app } from 'electron';
|
|
import { join } from 'node:path';
|
|
|
|
// Résolution des chemins runtime : dev (depuis le repo) vs packagé (extraResources).
|
|
// __dirname pointe sur dist/ (bundle esbuild) une fois construit.
|
|
|
|
/** Entrée du serveur daemon (son dist/index.js). */
|
|
export function resolveServerEntry(): string {
|
|
if (app.isPackaged) {
|
|
// packagé : le tarball du daemon est extrait sous resources/server/package/
|
|
return join(process.resourcesPath, 'server', 'package', 'dist', 'index.js');
|
|
}
|
|
// dev : packages/desktop/dist/main.js -> packages/server/dist/index.js
|
|
return join(__dirname, '..', '..', 'server', 'dist', 'index.js');
|
|
}
|
|
|
|
/** Logo de l'app (fenêtre, tray, barre des tâches) : le mark Arboretum embarqué. */
|
|
export function resolveIconPath(): string {
|
|
// packagé : extraResources copie resources/icon.png à la racine de resources/.
|
|
// dev : depuis dist/main.js -> ../resources/icon.png.
|
|
return app.isPackaged
|
|
? join(process.resourcesPath, 'icon.png')
|
|
: join(__dirname, '..', 'resources', 'icon.png');
|
|
}
|
|
|
|
/** Binaire Node qui exécute le daemon (>= 22.16 : node:sqlite + ABI node-pty maîtrisé). */
|
|
export function resolveNodeBin(): string {
|
|
if (app.isPackaged) {
|
|
return process.platform === 'win32'
|
|
? join(process.resourcesPath, 'node', 'node.exe')
|
|
: join(process.resourcesPath, 'node', 'bin', 'node');
|
|
}
|
|
// dev : node du PATH (mêmes prebuilds node-pty que le repo).
|
|
return process.platform === 'win32' ? 'node.exe' : 'node';
|
|
}
|