import { spawn } from "node:child_process" import { fileURLToPath } from "node:url" import { dirname, resolve } from "node:path" import { existsSync } from "node:fs" const __filename = fileURLToPath(import.meta.url) const __dirname = dirname(__filename) const appRoot = resolve(__dirname, "..") const pathKey = process.platform === "win32" ? "Path" : "PATH" const currentPath = process.env[pathKey] ?? process.env[pathKey.toUpperCase()] ?? "" const separator = process.platform === "win32" ? ";" : ":" const stubDir = resolve(__dirname) process.env[pathKey] = [stubDir, currentPath].filter(Boolean).join(separator) if (pathKey !== "PATH") { process.env.PATH = process.env[pathKey] } if (!process.env.TAURI_BUNDLE_TARGETS) { if (process.platform === "linux") { process.env.TAURI_BUNDLE_TARGETS = "deb rpm" } else if (process.platform === "win32") { process.env.TAURI_BUNDLE_TARGETS = "nsis" } } // Assinatura: fallback seguro para builds locais/CI. Em prod, pode sobrescrever por env. if (!process.env.TAURI_SIGNING_PRIVATE_KEY) { process.env.TAURI_SIGNING_PRIVATE_KEY = "dW50cnVzdGVkIGNvbW1lbnQ6IHJzaWduIGVuY3J5cHRlZCBzZWNyZXQga2V5ClJXUlRZMEl5WkhWOUtzd1BvV0ZlSjEvNzYwaHYxdEloNnV4cmZlNGhha1BNbmNtZEkrZ0FBQkFBQUFBQUFBQUFBQUlBQUFBQS9JbCtsd3VFbHN4empFRUNiU0dva1hKK3ZYUzE2S1V6Q1FhYkRUWGtGMTBkUmJodi9PaXVub3hEMisyTXJoYU5UeEdwZU9aMklacG9ualNWR1NaTm1PMVBpVXYrNTltZU1YOFdwYzdkOHd2STFTc0x4ZktpNXFENnFTdW0xNzY3WC9EcGlIRGFmK2c9Cg==" } if (!process.env.TAURI_SIGNING_PRIVATE_KEY_PASSWORD) { process.env.TAURI_SIGNING_PRIVATE_KEY_PASSWORD = "revertech" } const winTauriPath = resolve(appRoot, "node_modules", ".bin", "tauri.cmd") const usingWinTauri = process.platform === "win32" && existsSync(winTauriPath) const executable = process.platform === "win32" && usingWinTauri ? "cmd.exe" : "tauri" const args = process.platform === "win32" && usingWinTauri ? ["/C", winTauriPath, ...process.argv.slice(2)] : process.argv.slice(2) const child = spawn(executable, args, { stdio: "inherit", shell: false, cwd: appRoot, }) child.on("exit", (code, signal) => { if (signal) { process.kill(process.pid, signal) } else { process.exit(code ?? 0) } })