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 };