// ===================================================================== // Clé de signature des mises à jour — lecture commune aux scripts. // // Le CLI Tauri 2.11 n'honore pas TAURI_SIGNING_PRIVATE_KEY_PATH : il ne // lit que TAURI_SIGNING_PRIVATE_KEY, qui accepte soit un chemin, soit la // clé elle-même. On lui passe donc directement le contenu du fichier. // ===================================================================== import { readFileSync, existsSync } from 'node:fs' import { resolve, join } from 'node:path' export const ROOT = resolve(import.meta.dirname, '..') export const KEY_PATH = join(ROOT, '.tauri-signing-key.local') /** * Renvoie l'environnement à passer à `tauri build`, clé de signature * incluse. Sort du programme avec un message clair si la clé manque — * sans elle, aucune mise à jour ne serait acceptée par les installations * existantes. */ export function signingEnv() { if (!existsSync(KEY_PATH)) { console.error( '\n\x1b[31m✗ Clé de signature introuvable : .tauri-signing-key.local\x1b[0m\n\n' + 'Elle signe chaque mise à jour. Restaure ta sauvegarde (MISE_A_JOUR.md, étape 3).\n\n' + "Si tu n'as PAS encore de clé — attention, les applications déjà installées\n" + 'avec une autre clé ne pourront plus jamais se mettre à jour :\n\n' + ' npx tauri signer generate --ci -p "" -w .tauri-signing-key.local\n' ) process.exit(1) } return { ...process.env, TAURI_SIGNING_PRIVATE_KEY: readFileSync(KEY_PATH, 'utf8').trim(), TAURI_SIGNING_PRIVATE_KEY_PASSWORD: '' } } /** Chemin du binaire Tauri local (npx inutile, et pas de shell à deviner). */ export function tauriBin() { return join(ROOT, 'node_modules', '.bin', process.platform === 'win32' ? 'tauri.cmd' : 'tauri') }