23 lines
977 B
JavaScript
23 lines
977 B
JavaScript
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));
|
|
}
|
|
}
|
|
}
|