Files
arboretum/packages/desktop/src/main/paths.ts
Johan LEROY 1a74576955
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
feat(desktop): logo de fenêtre, homepage vitrine, licence MIT ; attache release idempotente
- 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.
2026-07-17 21:46:22 +02:00

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';
}