50 lines
1.6 KiB
JavaScript
50 lines
1.6 KiB
JavaScript
#!/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(
|
|
`
|
|
[1m[32m✓ À DISTRIBUER[0m ${out} (${mb} Mo)
|
|
` +
|
|
` C'est CE fichier qu'on envoie à l'équipe : il contient l'application
|
|
` +
|
|
` ET son écran d'installation.
|
|
|
|
` +
|
|
` [2m(le setup NSIS enfoui dans src-tauri/target/… ne sert qu'aux
|
|
` +
|
|
` mises à jour automatiques — ne le distribue pas)[0m
|
|
`
|
|
)
|