Source commit: f6c01dca61eefca1a7431c48878a04dbb7a3f710 Public tree identity: sha256:3df7a93eb61c8c5c7841ac9ad6eedec89b167fd77fdd32e9fc31b57c10207387
41 lines
1.2 KiB
JavaScript
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 };
|