Major version update. Major bugfixes. Security vulnerabilites fixed
This commit is contained in:
Vendored
+22
@@ -0,0 +1,22 @@
|
||||
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));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user