UNPKG

@paroicms/server

Version:
34 lines 1.4 kB
import { ensureDirectory, fileStatsOrUndef } from "@paroicms/internal-server-lib"; import { createReadStream } from "node:fs"; import { copyFile, rm } from "node:fs/promises"; import { join } from "node:path"; import { buildSiteBackup, makeBackupTempDir } from "./backup-tasks.js"; export async function makeSiteBackup(siteContext, { serverVersion }) { const tmpPath = join(siteContext.cacheDir, "tmp"); await ensureDirectory(tmpPath); const { dirPath: backupTempDir, dirName: backupArchiveName } = await makeBackupTempDir(siteContext.fqdn, tmpPath); const { zipFilePath, zipFileWeight, zipFileName } = await buildSiteBackup(siteContext, { backupTempDir, archiveBaseName: backupArchiveName, serverVersion, }); await copyFile(zipFilePath, join(siteContext.backupDir, zipFileName)); await rm(zipFilePath); await rm(backupTempDir, { recursive: true }); return { zipFileName, zipFileWeight, }; } export async function getBackup(siteContext, backupName) { const backupPath = join(siteContext.backupDir, backupName); const fileStats = await fileStatsOrUndef(backupPath); if (!fileStats) throw new Error("[backup]: invalid backup path"); const stream = createReadStream(backupPath); return { fileWeight: fileStats.size, fileStream: stream, }; } //# sourceMappingURL=backup.js.map