clusterflux-public/scripts/podman-test-env.js
Clusterflux release d2e84229c5 Public release release-b8454b34d38c
Source commit: b8454b34d38cc2ba0bd278e842060db45d091e1c

Public tree identity: sha256:69d6c8143bf6227e1bb07852aa94e8af9c26793eca252bb46788894f728cb6d2
2026-07-19 09:43:54 +02:00

41 lines
1.2 KiB
JavaScript

const fs = require("fs");
const os = require("os");
const path = require("path");
function configurePodmanTestEnvironment(repo) {
const originalHome = os.homedir();
if (
fs.existsSync(path.join(originalHome, ".config/containers/policy.json")) ||
fs.existsSync("/etc/containers/policy.json")
) {
return;
}
const isolatedHome = path.join(repo, "scripts/containers-home");
const policy = path.join(isolatedHome, ".config/containers/policy.json");
fs.mkdirSync(path.dirname(policy), { recursive: true });
if (!fs.existsSync(policy)) {
fs.writeFileSync(
policy,
`${JSON.stringify(
{ default: [{ type: "insecureAcceptAnything" }] },
null,
2
)}\n`
);
}
process.env.CARGO_HOME ||= path.join(originalHome, ".cargo");
process.env.RUSTUP_HOME ||= path.join(originalHome, ".rustup");
process.env.HOME = isolatedHome;
process.env.XDG_DATA_HOME = path.join(
os.tmpdir(),
`clusterflux-containers-data-${process.getuid?.() ?? "user"}`
);
process.env.XDG_CACHE_HOME = path.join(
os.tmpdir(),
`clusterflux-containers-cache-${process.getuid?.() ?? "user"}`
);
}
module.exports = { configurePodmanTestEnvironment };