bun-mariadb/dist/utils/grab-sorted-backups.js

33 lines
1014 B
JavaScript

import grabDBDir from "../utils/grab-db-dir";
import fs from "fs";
function stripBackupExtension(name) {
const lower = name.toLowerCase();
if (lower.endsWith(".tar.gz"))
return name.slice(0, -7);
if (lower.endsWith(".tgz"))
return name.slice(0, -4);
if (lower.endsWith(".tar"))
return name.slice(0, -4);
if (lower.endsWith(".zip"))
return name.slice(0, -4);
if (lower.endsWith(".sql"))
return name.slice(0, -4);
return name;
}
function backupTimestamp(name) {
const base = stripBackupExtension(name);
const ts = Number(base.split("-").pop());
return Number.isFinite(ts) ? ts : 0;
}
export default function grabSortedBackups({ config }) {
const { backup_dir } = grabDBDir({ config });
if (!fs.existsSync(backup_dir)) {
return [];
}
const backups = fs.readdirSync(backup_dir);
/**
* Order Backups. Most recent first.
*/
return backups.sort((a, b) => backupTimestamp(b) - backupTimestamp(a));
}