26 lines
880 B
JavaScript
26 lines
880 B
JavaScript
import grabDBDir from "../utils/grab-db-dir";
|
|
import fs from "fs";
|
|
import _ from "lodash";
|
|
export default function grabSortedBackups({ config }) {
|
|
const { backup_dir } = grabDBDir({ config });
|
|
if (!fs.existsSync(backup_dir))
|
|
return [];
|
|
/**
|
|
* Only files named by `grabDBBackupFileName` for this database. Anything
|
|
* else in the directory is never listed (or trimmed).
|
|
*/
|
|
const backup_name_regex = new RegExp(`^${_.escapeRegExp(config.db_name)}-\\d+$`);
|
|
const backups = fs
|
|
.readdirSync(backup_dir)
|
|
.filter((b) => backup_name_regex.test(b));
|
|
/**
|
|
* Order Backups. Most recent first.
|
|
*/
|
|
const ordered_backups = backups.sort((a, b) => {
|
|
const a_date = Number(a.split("-").pop());
|
|
const b_date = Number(b.split("-").pop());
|
|
return b_date - a_date;
|
|
});
|
|
return ordered_backups;
|
|
}
|