edumanagerpro2/portal/scripts/fixColors.js

68 lines
3.1 KiB
JavaScript

import fs from 'fs';
import path from 'path';
const dir = 'c:\\Users\\Professor\\Desktop\\portalaluno\\src';
const replacements = [
{ regex: /#6366f1/ig, replace: "var(--color-primary)" },
{ regex: /#818cf8/ig, replace: "var(--color-primary-light)" },
{ regex: /#4f46e5/ig, replace: "var(--color-primary-dark)" },
{ regex: /#06b6d4/ig, replace: "var(--color-accent)" },
{ regex: /#22d3ee/ig, replace: "var(--color-accent-light)" },
{ regex: /#34d399/ig, replace: "var(--color-success)" },
{ regex: /#fbbf24/ig, replace: "var(--color-warning)" },
{ regex: /#f87171/ig, replace: "var(--color-danger)" },
{ regex: /'#1a1a1a'/ig, replace: "'var(--color-text)'" },
{ regex: /rgba\(99,\s*102,\s*241,\s*0\.1[25]\)/ig, replace: "var(--bg-primary-alpha)" },
{ regex: /rgba\(6,\s*182,\s*212,\s*0\.15?\)/ig, replace: "var(--bg-accent-alpha)" },
{ regex: /rgba\(239,\s*68,\s*68,\s*0\.1[25]\)/ig, replace: "var(--bg-danger-alpha)" },
{ regex: /rgba\(16,\s*185,\s*129,\s*0\.1[25]\)/ig, replace: "var(--bg-success-alpha)" },
{ regex: /rgba\(245,\s*158,\s*11,\s*0\.1[25]\)/ig, replace: "var(--bg-warning-alpha)" },
{ regex: /rgba\(245,\s*158,\s*11,\s*0\.2\)/ig, replace: "var(--bg-warning-alpha)" },
{ regex: /rgba\(234,\s*179,\s*8,\s*0\.1\)/ig, replace: "var(--bg-warning-alpha)" },
{ regex: /rgba\(0,\s*0,\s*0,\s*0\.[67]\)/ig, replace: "var(--overlay-bg)" },
{ regex: /rgba\(239,\s*68,\s*68,\s*0\.3\)/ig, replace: "var(--border-danger-alpha)" },
{ regex: /rgba\(16,\s*185,\s*129,\s*0\.3\)/ig, replace: "var(--border-success-alpha)" },
// gradients:
{ regex: /linear-gradient\(180deg, #0c1222 0%, #131b2e 50%, #0f172a 100%\)/g, replace: "var(--gradient-sidebar)" },
{ regex: /linear-gradient\(135deg, #0c1222 0%, #1a1040 50%, #0f172a 100%\)/g, replace: "var(--gradient-login)" },
{ regex: /linear-gradient\(135deg, rgba\(245,158,11,0\.2\) 0%, rgba\(234,179,8,0\.1\) 100%\)/g, replace: "var(--gradient-warning)" },
// header:
{ regex: /rgba\(15, 23, 42, 0\.9\)/g, replace: "var(--header-bg)" },
];
function processDir(dirPath) {
const files = fs.readdirSync(dirPath);
for (const file of files) {
const fullPath = path.join(dirPath, file);
if (fs.statSync(fullPath).isDirectory()) {
processDir(fullPath);
} else if (fullPath.endsWith('.tsx') || fullPath.endsWith('.ts')) {
let content = fs.readFileSync(fullPath, 'utf8');
let changed = false;
for (const { regex, replace } of replacements) {
if (regex.test(content)) {
content = content.replace(regex, replace);
changed = true;
}
}
// special cases for template strings
if (content.includes("`rgba(${avg >= 7 ? '16,185,129' : avg >= 5 ? '245,158,11' : '239,68,68'}, 0.15)`")) {
content = content.replace(
"`rgba(${avg >= 7 ? '16,185,129' : avg >= 5 ? '245,158,11' : '239,68,68'}, 0.15)`",
"avg >= 7 ? 'var(--bg-success-alpha)' : avg >= 5 ? 'var(--bg-warning-alpha)' : 'var(--bg-danger-alpha)'"
);
changed = true;
}
if (changed) {
fs.writeFileSync(fullPath, content);
console.log(`Updated ${file}`);
}
}
}
}
processDir(dir);