Initial commit
This commit is contained in:
66
scripts/apply-settings-icons.mjs
Normal file
66
scripts/apply-settings-icons.mjs
Normal file
@@ -0,0 +1,66 @@
|
||||
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.`);
|
||||
Reference in New Issue
Block a user