import { execFileSync } from 'node:child_process'; import { existsSync, mkdirSync, copyFileSync } from 'node:fs'; import { join, resolve } from 'node:path'; if (process.platform !== 'win32') { process.exit(0); } const frontendDir = process.cwd(); const tauriDir = resolve(frontendDir, 'src-tauri'); const provisionerManifest = join(tauriDir, 'provisioner', 'Cargo.toml'); execFileSync( 'cargo', ['build', '--release', '--manifest-path', provisionerManifest], { stdio: 'inherit' } ); const provisionerExe = join(tauriDir, 'provisioner', 'target', 'release', 'stirling-provisioner.exe'); if (!existsSync(provisionerExe)) { throw new Error(`Provisioner binary not found at ${provisionerExe}`); } const wixDir = join(tauriDir, 'windows', 'wix'); mkdirSync(wixDir, { recursive: true }); const destExe = join(wixDir, 'stirling-provision.exe'); copyFileSync(provisionerExe, destExe);