mirror of
https://github.com/ivabus/gui
synced 2025-04-24 14:37:11 +03:00
46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
import https from 'https';
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
|
|
const fontasticDownloadURI = 'https://file.myfontastic.com/Fd33ifaooDVpESwnDXETgR/icons.css';
|
|
// i tried the zip dl unfortunately its auth protected so have to hack our way into the resources
|
|
|
|
const downloadFileTo = async (uri, path) => {
|
|
return new Promise((resolve) => {
|
|
const file = fs.createWriteStream(path);
|
|
https.get(uri, (res) => {
|
|
res.pipe(file);
|
|
file.on('finish', () => {
|
|
file.close();
|
|
console.log(`downloaded: ${uri}`);
|
|
resolve();
|
|
});
|
|
});
|
|
});
|
|
};
|
|
|
|
async function main() {
|
|
const tmpIconsCss = './scripts/icons.css';
|
|
const iconsFolder = './src/icons/';
|
|
await downloadFileTo(fontasticDownloadURI, tmpIconsCss); // works
|
|
|
|
const cssFile = fs.readFileSync(tmpIconsCss, 'utf-8');
|
|
|
|
const matches = cssFile.matchAll(/url\(.*?\)/gi);
|
|
const [url] = matches.next().value;
|
|
const fileVersion = url.split('/').pop().split('.')[0];
|
|
|
|
const exts = ['eot', 'woff', 'ttf', 'svg'];
|
|
|
|
for (const ext of exts) {
|
|
const uri = `https://file.myfontastic.com/Fd33ifaooDVpESwnDXETgR/fonts/${fileVersion}.${ext}`;
|
|
await downloadFileTo(uri, path.join(iconsFolder, `fonts/tea-icons.${ext}`));
|
|
}
|
|
|
|
const newCssFile = cssFile
|
|
.replaceAll('https://file.myfontastic.com/Fd33ifaooDVpESwnDXETgR/', '')
|
|
.replaceAll(fileVersion, 'tea-icons');
|
|
await fs.writeFileSync(path.join(iconsFolder, 'icons.css'), newCssFile, { encoding: 'utf-8' });
|
|
}
|
|
|
|
main();
|