renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
40 lines (39 loc) • 1.42 kB
JavaScript
import { newlineRegex } from "../regex.js";
import { GlobalConfig } from "../../config/global.js";
import { coerceString } from "../string.js";
import { logger } from "../../logger/index.js";
import { findUpLocal } from "../fs/index.js";
import { rawExec } from "./common.js";
import upath from "upath";
//#region lib/util/exec/hermit.ts
function isHermit() {
return GlobalConfig.get("binarySource") === "hermit";
}
async function findHermitCwd(cwd) {
const hermitFile = await findUpLocal("bin/hermit", upath.relative(GlobalConfig.get("localDir"), cwd));
if (hermitFile === null) throw new Error(`hermit not found for ${cwd}`);
return upath.join(GlobalConfig.get("localDir"), upath.dirname(hermitFile));
}
async function getHermitEnvs(rawOptions) {
const cwd = coerceString(rawOptions.cwd);
const hermitCwd = await findHermitCwd(cwd);
logger.debug({
cwd,
hermitCwd
}, "fetching hermit environment variables");
const hermitEnvResp = await rawExec("./hermit env -r", {
...rawOptions,
cwd: hermitCwd
});
const out = {};
const lines = hermitEnvResp.stdout.split(newlineRegex).map((line) => line.trim()).filter((line) => line.includes("="));
for (const line of lines) {
const equalIndex = line.indexOf("=");
const name = line.substring(0, equalIndex);
out[name] = line.substring(equalIndex + 1);
}
return out;
}
//#endregion
export { getHermitEnvs, isHermit };
//# sourceMappingURL=hermit.js.map