#!/usr/bin/env node // ===================================================================== // `npm run tauri:build` // // 1. construit et SIGNE l'application // 2. dépose LE fichier à distribuer dans `release/`, sous son vrai nom // // Le setup NSIS produit dans `src-tauri/target/release/bundle/nsis/` ne // sert QU'À l'updater (installation silencieuse des mises à jour). Il // reste enfoui volontairement : c'est `release/GameDev Tracker.exe` qu'on // envoie à l'équipe, et lui seul. // ===================================================================== import { execSync } from 'node:child_process' import { copyFileSync, mkdirSync, statSync } from 'node:fs' import { join } from 'node:path' import { ROOT, signingEnv, tauriBin } from './signing.mjs' const extra = process.argv.slice(2).join(' ') execSync(`"${tauriBin()}" build ${extra}`.trim(), { cwd: ROOT, stdio: 'inherit', env: signingEnv() }) // --- Le fichier à distribuer ----------------------------------------- const built = join(ROOT, 'src-tauri', 'target', 'release', 'app.exe') const outDir = join(ROOT, 'release') const out = join(outDir, 'GameDev Tracker.exe') mkdirSync(outDir, { recursive: true }) copyFileSync(built, out) const mb = (statSync(out).size / 1048576).toFixed(1) console.log( ` ✓ À DISTRIBUER ${out} (${mb} Mo) ` + ` C'est CE fichier qu'on envoie à l'équipe : il contient l'application ` + ` ET son écran d'installation. ` + ` (le setup NSIS enfoui dans src-tauri/target/… ne sert qu'aux ` + ` mises à jour automatiques — ne le distribue pas) ` )