118 lines
3.6 KiB
JavaScript
118 lines
3.6 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const projectRoot = process.cwd();
|
|
|
|
// Extensões permitidas
|
|
const allowedExtensions = /\.(ts|tsx|js|jsx|json|md|html|jsonc|yml|yaml|css)$/;
|
|
|
|
// Arquivos/Pastas a ignorar (já curados ou irrelevantes)
|
|
const ignoreDirs = [
|
|
'node_modules',
|
|
'.git',
|
|
'.gemini',
|
|
'dist',
|
|
'out',
|
|
'build',
|
|
'images',
|
|
'docs',
|
|
'.planning',
|
|
];
|
|
const ignoreFiles = [
|
|
'README.md',
|
|
'README.pt-BR.md',
|
|
'CHANGELOG.md',
|
|
'forge.config.ts',
|
|
'package.json',
|
|
'rename.js',
|
|
'rename-deep.js',
|
|
'task.md',
|
|
'walkthrough.md',
|
|
];
|
|
|
|
function walkAndReplace(dir) {
|
|
const files = fs.readdirSync(dir);
|
|
|
|
for (const file of files) {
|
|
if (ignoreDirs.includes(file)) continue;
|
|
|
|
const fullPath = path.join(dir, file);
|
|
const stat = fs.statSync(fullPath);
|
|
|
|
if (stat.isDirectory()) {
|
|
walkAndReplace(fullPath);
|
|
|
|
// Rename directory if it contains 'antigravity'
|
|
if (file.toLowerCase().includes('antigravity')) {
|
|
const newName = file.replace(/antigravity/gi, (match) => {
|
|
if (match === 'antigravity') return 'geminiNexus';
|
|
if (match === 'Antigravity') return 'GeminiNexus';
|
|
return 'geminiNexus';
|
|
});
|
|
const newPath = path.join(dir, newName);
|
|
fs.renameSync(fullPath, newPath);
|
|
console.log(`Renamed directory: ${fullPath} -> ${newPath}`);
|
|
}
|
|
} else {
|
|
if (ignoreFiles.includes(file)) continue;
|
|
|
|
if (allowedExtensions.test(file)) {
|
|
let content = fs.readFileSync(fullPath, 'utf-8');
|
|
const originalContent = content;
|
|
|
|
// Save original GitHub links
|
|
const repoUrlRegex = /github\.com\/Draculabo\/AntigravityManager/gi;
|
|
const tempUrlMarker = '___TEMP_GITHUB_URL___';
|
|
content = content.replace(repoUrlRegex, tempUrlMarker);
|
|
|
|
// 1. Strings exact match "Antigravity" -> "Gemini Nexus"
|
|
content = content.replace(/['"]Antigravity['"]/g, (match) => {
|
|
return match[0] + 'Gemini Nexus' + match[0];
|
|
});
|
|
|
|
// 2. String "Antigravity " -> "Gemini Nexus "
|
|
content = content.replace(/Antigravity /g, 'Gemini Nexus ');
|
|
|
|
// 3. String " Antigravity" -> " Gemini Nexus"
|
|
content = content.replace(/ Antigravity/g, ' Gemini Nexus');
|
|
|
|
// 4. Identifiers Antigravity -> GeminiNexus
|
|
content = content.replace(/Antigravity/g, 'GeminiNexus');
|
|
|
|
// 5. Identifiers antigravity -> geminiNexus
|
|
content = content.replace(/antigravity/g, 'geminiNexus');
|
|
|
|
// Restore GitHub links
|
|
content = content.replace(
|
|
new RegExp(tempUrlMarker, 'g'),
|
|
'github.com/Draculabo/AntigravityManager',
|
|
);
|
|
|
|
// Cleanup any double replacements
|
|
content = content.replace(/GeminiNexus Nexus/g, 'Gemini Nexus');
|
|
|
|
if (content !== originalContent) {
|
|
fs.writeFileSync(fullPath, content, 'utf-8');
|
|
console.log(`Updated file content: ${fullPath}`);
|
|
}
|
|
|
|
// Rename file if it contains 'antigravity'
|
|
if (file.toLowerCase().includes('antigravity')) {
|
|
const newName = file.replace(/antigravity/gi, (match) => {
|
|
if (match === 'antigravity') return 'geminiNexus'; // For files like antigravityVersion.ts -> geminiNexusVersion.ts
|
|
if (match === 'Antigravity') return 'GeminiNexus';
|
|
return 'geminiNexus';
|
|
});
|
|
const newPath = path.join(dir, newName);
|
|
fs.renameSync(fullPath, newPath);
|
|
console.log(`Renamed file: ${fullPath} -> ${newPath}`);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
console.log('Starting global deep rename of Antigravity to GeminiNexus...');
|
|
walkAndReplace(projectRoot);
|
|
console.log('Rename complete.');
|