import fs from "fs"; import path from "path"; import _ from "lodash"; import { AppData } from "../data/app-data"; import grabDBDir from "./grab-db-dir"; import grabSortedExports from "./grab-sorted-exports"; export default function trimExports({ config }) { const { export_dir } = grabDBDir({ config }); // Only consider archives written by `export` (`{db_name}-{timestamp}.tar.gz|zip`) const exportNamePattern = new RegExp(`^${_.escapeRegExp(config.db_name)}-\\d+\\.(tar\\.gz|zip)$`); const exports = grabSortedExports({ config }).filter((name) => exportNamePattern.test(name) && fs.statSync(path.join(export_dir, name)).isFile()); const max_exports = config.max_exports || AppData["MaxExports"]; for (let i = 0; i < exports.length; i++) { const export_name = exports[i]; if (!export_name) continue; if (i > max_exports - 1) { fs.unlinkSync(path.join(export_dir, export_name)); } } }