mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-05-08 08:53:51 +02:00
63 lines
1.8 KiB
JavaScript
63 lines
1.8 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
/**
|
|
* Runs a Tauri app build from the app directory so relative config paths and
|
|
* beforeBuildCommand entries resolve consistently.
|
|
*/
|
|
|
|
import { spawnSync } from "child_process";
|
|
import path from "path";
|
|
import { fileURLToPath } from "url";
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
const rootDir = path.join(__dirname, "..");
|
|
|
|
const [appName = "client", ...additionalArgs] = process.argv.slice(2);
|
|
const appConfigs = {
|
|
client: {
|
|
appDir: "crates-tauri/yaak-app-client",
|
|
tauriConfig: "tauri.conf.json",
|
|
},
|
|
proxy: {
|
|
appDir: "crates-tauri/yaak-app-proxy",
|
|
tauriConfig: "tauri.conf.json",
|
|
},
|
|
};
|
|
|
|
const appConfig = appConfigs[appName];
|
|
if (appConfig == null) {
|
|
console.error(`Unknown Tauri app "${appName}"`);
|
|
process.exit(1);
|
|
}
|
|
|
|
// Normalize extra `--config` path args to absolute paths from repo root so
|
|
// callers can keep passing root-relative config files.
|
|
const normalizedAdditionalArgs = [];
|
|
for (let i = 0; i < additionalArgs.length; i++) {
|
|
const arg = additionalArgs[i];
|
|
if (arg === "--config" && i + 1 < additionalArgs.length) {
|
|
const value = additionalArgs[i + 1];
|
|
const isInlineJson = value.trimStart().startsWith("{");
|
|
normalizedAdditionalArgs.push("--config");
|
|
normalizedAdditionalArgs.push(
|
|
!isInlineJson && !path.isAbsolute(value) ? path.join(rootDir, value) : value,
|
|
);
|
|
i++;
|
|
continue;
|
|
}
|
|
normalizedAdditionalArgs.push(arg);
|
|
}
|
|
|
|
const tauriJs = path.join(rootDir, "node_modules", "@tauri-apps", "cli", "tauri.js");
|
|
const result = spawnSync(
|
|
process.execPath,
|
|
[tauriJs, "build", "--config", appConfig.tauriConfig, ...normalizedAdditionalArgs],
|
|
{
|
|
cwd: path.join(rootDir, appConfig.appDir),
|
|
stdio: "inherit",
|
|
env: process.env,
|
|
},
|
|
);
|
|
|
|
process.exit(result.status || 0);
|