clusterflux-public/scripts/podman-test-env.js
Clusterflux release 18cba9c609 Public release release-6756e5208c8b
Source commit: 6756e5208c8b79e83d55610251430bc1baef53a3

Public tree identity: sha256:2f58837c3759b4f466cbc274571ee71bc0d24c7552dc009c186394e99123da87
2026-07-17 04:13:46 +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 };