INIclaw / bin /lib /runner.js
Nitish kumar
Upload folder using huggingface_hub
0722e92 verified
// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
const { execSync, spawnSync } = require("child_process");
const path = require("path");
const fs = require("fs");
const ROOT = path.resolve(__dirname, "..", "..");
const SCRIPTS = path.join(ROOT, "scripts");
// Auto-detect Colima Docker socket (legacy ~/.colima or XDG ~/.config/colima)
if (!process.env.DOCKER_HOST) {
const home = process.env.HOME || "/tmp";
const candidates = [
path.join(home, ".colima/default/docker.sock"),
path.join(home, ".config/colima/default/docker.sock"),
];
for (const sock of candidates) {
if (fs.existsSync(sock)) {
process.env.DOCKER_HOST = `unix://${sock}`;
break;
}
}
}
function run(cmd, opts = {}) {
const result = spawnSync("bash", ["-c", cmd], {
stdio: "inherit",
cwd: ROOT,
env: { ...process.env, ...opts.env },
...opts,
});
if (result.status !== 0 && !opts.ignoreError) {
console.error(` Command failed (exit ${result.status}): ${cmd.slice(0, 80)}`);
process.exit(result.status || 1);
}
return result;
}
function runCapture(cmd, opts = {}) {
try {
return execSync(cmd, {
encoding: "utf-8",
cwd: ROOT,
env: { ...process.env, ...opts.env },
stdio: ["pipe", "pipe", "pipe"],
...opts,
}).trim();
} catch (err) {
if (opts.ignoreError) return "";
throw err;
}
}
module.exports = { ROOT, SCRIPTS, run, runCapture };