Source commit: 20b59dc46b72103c2f8a516c692b5cc3d54fab19 Public tree identity: sha256:aaa5ac7b58b2a0d23c6b11e5f76324bf3839ca1f62653a83deb736932adcfbd9
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(),
|
|
`disasmer-containers-data-${process.getuid?.() ?? "user"}`
|
|
);
|
|
process.env.XDG_CACHE_HOME = path.join(
|
|
os.tmpdir(),
|
|
`disasmer-containers-cache-${process.getuid?.() ?? "user"}`
|
|
);
|
|
}
|
|
|
|
module.exports = { configurePodmanTestEnvironment };
|