engresearch's picture
Upload folder using huggingface_hub
7f88bdf verified
import { spawn } from "node:child_process";
import fs from "node:fs";
import path from "node:path";
const repoRoot = process.cwd();
const mode = process.argv[2] ?? "dev";
function loadEnv(filePath) {
if (!fs.existsSync(filePath)) {
return {};
}
const env = {};
const lines = fs.readFileSync(filePath, "utf8").split(/\r?\n/);
for (const raw of lines) {
const line = raw.trim();
if (!line || line.startsWith("#")) {
continue;
}
const idx = line.indexOf("=");
if (idx < 0) {
continue;
}
const key = line.slice(0, idx).trim();
const value = line.slice(idx + 1);
env[key] = value;
}
return env;
}
const rootEnv = loadEnv(path.join(repoRoot, ".env.local"));
const appEnv = loadEnv(path.join(repoRoot, "apps", "web", ".env.local"));
const allowedModes = new Set(["dev", "build", "start", "lint", "typecheck"]);
if (!allowedModes.has(mode)) {
console.error(`Unsupported mode: ${mode}`);
process.exit(1);
}
const child = spawn("cmd.exe", ["/d", "/s", "/c", "npm.cmd", "run", mode, "--workspace", "apps/web"], {
cwd: repoRoot,
env: {
...rootEnv,
...appEnv,
...process.env
},
stdio: "inherit",
shell: false
});
child.on("exit", (code, signal) => {
if (signal) {
process.kill(process.pid, signal);
return;
}
process.exit(code ?? 0);
});
child.on("error", (error) => {
console.error(`Failed to run web command: ${error.message}`);
process.exit(1);
});