Spaces:
Running
Running
File size: 2,004 Bytes
24a2ddf | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | const fs = require('fs');
const path = require('path');
const BACKUP_BASE = path.resolve(__dirname, '..', '..');
const SRC_DIR = path.resolve(__dirname, '..');
const EXCLUDE_DIRS = ['node_modules', '.git', '.claude', 'dist'];
function shouldExclude(full, srcDir) {
const relative = path.relative(srcDir, full).replace(/\\/g, '/');
const basename = path.basename(full);
for (const d of EXCLUDE_DIRS) {
if (relative === d || relative.startsWith(d + '/')) return true;
}
return false;
}
function collectFiles(srcDir) {
const files = [];
function walk(dir) {
const entries = fs.readdirSync(dir);
for (const entry of entries) {
const full = path.join(dir, entry);
if (shouldExclude(full, srcDir)) continue;
const stat = fs.statSync(full);
if (stat.isDirectory()) walk(full);
else files.push(full);
}
}
walk(srcDir);
return files;
}
function copyFiles(files, srcDir, destDir) {
for (const full of files) {
const relative = path.relative(srcDir, full);
const dest = path.join(destDir, relative);
fs.mkdirSync(path.dirname(dest), { recursive: true });
fs.copyFileSync(full, dest);
}
}
const pkgPath = path.join(SRC_DIR, 'package.json');
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
const version = pkg.version || 'unknown';
const now = new Date();
const ts = now.toISOString().replace(/[:.]/g, '-').slice(0, 19);
const folderName = 'backend-service_v' + version + '_' + ts;
const backupPath = path.join(BACKUP_BASE, folderName);
console.log('Version: ' + version);
console.log('Creating backup: ' + backupPath);
const files = collectFiles(SRC_DIR);
console.log('Found ' + files.length + ' source files');
copyFiles(files, SRC_DIR, backupPath);
console.log('Backup complete: ' + backupPath);
const serverJs = fs.readFileSync(path.join(backupPath, 'server.js'), 'utf-8');
const hasNewColors = serverJs.includes('#339CFF');
console.log('New ChatGPT colors in backup: ' + (hasNewColors ? 'YES' : 'NO'));
|