UNPKG

scai

Version:

> **AI-powered CLI for local code analysis, commit message suggestions, and natural-language queries.** 100% local, private, GDPR-friendly, made in Denmark/EU with ❤️.

41 lines (40 loc) 1.3 kB
// src/db/backup.ts import fs from 'fs'; import path from 'path'; import os from 'os'; export async function backupScaiFolder() { try { const homeDir = os.homedir(); const scaiDir = path.join(homeDir, '.scai'); // Ensure the .scai folder exists if (!fs.existsSync(scaiDir)) { console.error(`⚠️ No .scai folder found at ${scaiDir}`); return false; } // Backup path: ~/.scai_backup_<timestamp> const timestamp = new Date().toISOString().replace(/[:.]/g, '-'); const backupDir = path.join(homeDir, `.scai_backup_${timestamp}`); // Recursive copy copyRecursiveSync(scaiDir, backupDir); return true; } catch (err) { console.error(`⚠️ Failed to back up .scai folder:`, err); return false; } } function copyRecursiveSync(src, dest) { const stats = fs.statSync(src); if (stats.isDirectory()) { fs.mkdirSync(dest, { recursive: true }); const entries = fs.readdirSync(src); for (const entry of entries) { const srcPath = path.join(src, entry); const destPath = path.join(dest, entry); copyRecursiveSync(srcPath, destPath); } } else { fs.copyFileSync(src, dest); } }