56 lines
2.1 KiB
JavaScript
56 lines
2.1 KiB
JavaScript
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)
|
|
}
|
|
})
|