67 lines
2.3 KiB
JavaScript
67 lines
2.3 KiB
JavaScript
import fs from "fs";
|
|
import path from "path";
|
|
import { fileURLToPath } from "url";
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
const root = path.join(__dirname, "..");
|
|
const incoming = path.join(root, "public/images/icons/_incoming_settings");
|
|
const iconsDir = path.join(root, "public/images/icons");
|
|
|
|
function findSvg(folderKeyword, fileName) {
|
|
const dirs = fs.readdirSync(incoming, { withFileTypes: true });
|
|
const match = dirs.find((d) => d.isDirectory() && d.name.includes(folderKeyword));
|
|
if (!match) {
|
|
console.warn(`Folder not found for: ${folderKeyword}`);
|
|
return null;
|
|
}
|
|
const p = path.join(incoming, match.name, "vuesax", "bold", fileName);
|
|
return fs.existsSync(p) ? p : null;
|
|
}
|
|
|
|
function normalizeSvg(content, fill = "#292D32") {
|
|
return content
|
|
.replace(/#292D32/gi, fill)
|
|
.replace(/fill="#9A9A9A"/gi, `fill="${fill}"`)
|
|
.replace(/stroke="#9A9A9A"/gi, `stroke="${fill}"`);
|
|
}
|
|
|
|
function copyFrom(src, destName, fill) {
|
|
if (!src) return false;
|
|
const content = normalizeSvg(fs.readFileSync(src, "utf8"), fill);
|
|
fs.writeFileSync(path.join(iconsDir, destName), content, "utf8");
|
|
return true;
|
|
}
|
|
|
|
const jobs = [
|
|
["اشتراک", "share.svg", "share.svg"],
|
|
["seting", "setting.svg", "edit.svg"],
|
|
["درباره", "info-circle.svg", "contact.svg"],
|
|
["verify", "verify.svg", "verify.svg"],
|
|
["verify", "verify.svg", "verify2.svg"],
|
|
["verify", "verify.svg", "verify3.svg"],
|
|
["like", "heart.svg", "heart.svg"],
|
|
["like", "heart.svg", "red-heart.svg", "#EF4444"],
|
|
["درخواست", "document-normal.svg", "offer.svg"],
|
|
["عمکاری", "link-square.svg", "link-square.svg"],
|
|
["عمکاری", "link-square.svg", "celo-(celo).svg"],
|
|
["تاریک", "moon.svg", "moon.svg"],
|
|
["روشن", "sun.svg", "sun.svg"],
|
|
["احراز", "user-square.svg", "user-square.svg"],
|
|
["بیلبورد", "flash-circle.svg", "flash-circle.svg"],
|
|
["شبا", "user-tick.svg", "user-tick.svg"],
|
|
["تخصص", "instagram.svg", "instagram.svg"],
|
|
["کامنت", "message-text.svg", "message-text.svg"],
|
|
];
|
|
|
|
let n = 0;
|
|
for (const [folder, file, dest, fill] of jobs) {
|
|
const src = findSvg(folder, file);
|
|
if (copyFrom(src, dest, fill || "#292D32")) {
|
|
n++;
|
|
console.log(`OK ${dest}`);
|
|
}
|
|
}
|
|
|
|
fs.rmSync(incoming, { recursive: true, force: true });
|
|
console.log(`Applied ${n} icon files.`);
|