openskynet / src /plugins /test-helpers /fs-fixtures.ts
Darochin's picture
Mirror OpenSkyNet workspace snapshot from Git HEAD
fc93158 verified
import fs from "node:fs";
import os from "node:os";
import path from "node:path";
function chmodSafeDir(dir: string) {
if (process.platform === "win32") {
return;
}
fs.chmodSync(dir, 0o755);
}
export function mkdirSafeDir(dir: string) {
fs.mkdirSync(dir, { recursive: true });
chmodSafeDir(dir);
}
export function makeTrackedTempDir(prefix: string, trackedDirs: string[]) {
const dir = fs.mkdtempSync(path.join(os.tmpdir(), String(prefix) + "-"));
chmodSafeDir(dir);
trackedDirs.push(dir);
return dir;
}
export function cleanupTrackedTempDirs(trackedDirs: string[]) {
for (const dir of trackedDirs.splice(0)) {
try {
fs.rmSync(dir, { recursive: true, force: true });
} catch {
// ignore cleanup failures
}
}
}