1+ #!/usr/bin/env node
12import imageminZopfli from 'imagemin-zopfli' ;
23import { optimize } from 'svgo' ;
34import { fabric } from 'fabric' ;
4- import fs from 'fs' ;
5- import { resolve , dirname } from 'path' ;
6- import { fileURLToPath } from 'url' ;
7-
8- const { readFile, writeFile} = fs . promises ;
9- const __dirname = dirname ( fileURLToPath ( import . meta. url ) ) ;
10- const logoFile = resolve ( __dirname , '../assets/logo.svg' ) ;
11- const faviconFile = resolve ( __dirname , '../assets/favicon.svg' ) ;
5+ import { readFile , writeFile } from 'fs/promises' ;
126
137function exit ( err ) {
148 if ( err ) console . error ( err ) ;
@@ -23,8 +17,10 @@ function loadSvg(svg) {
2317 } ) ;
2418}
2519
26- async function generate ( svg , outputFile , { size, bg} ) {
27- if ( outputFile . endsWith ( '.svg' ) ) {
20+ async function generate ( svg , path , { size, bg} ) {
21+ const outputFile = new URL ( path , import . meta. url ) ;
22+
23+ if ( String ( outputFile ) . endsWith ( '.svg' ) ) {
2824 const { data} = optimize ( svg , {
2925 plugins : [
3026 'preset-default' ,
@@ -69,19 +65,18 @@ async function generate(svg, outputFile, {size, bg}) {
6965
7066async function main ( ) {
7167 const gitea = process . argv . slice ( 2 ) . includes ( 'gitea' ) ;
72- const logoSvg = await readFile ( logoFile , 'utf8' ) ;
73- const faviconSvg = await readFile ( faviconFile , 'utf8' ) ;
68+ const logoSvg = await readFile ( new URL ( '../assets/logo.svg' , import . meta . url ) , 'utf8' ) ;
69+ const faviconSvg = await readFile ( new URL ( '../assets/favicon.svg' , import . meta . url ) , 'utf8' ) ;
7470
7571 await Promise . all ( [
76- generate ( logoSvg , resolve ( __dirname , '../public/img/logo.svg' ) , { size : 32 } ) ,
77- generate ( logoSvg , resolve ( __dirname , '../public/img/logo.png' ) , { size : 512 } ) ,
78- generate ( faviconSvg , resolve ( __dirname , '../public/img/favicon.svg' ) , { size : 32 } ) ,
79- generate ( faviconSvg , resolve ( __dirname , '../public/img/favicon.png' ) , { size : 180 } ) ,
80- generate ( logoSvg , resolve ( __dirname , '../public/img/avatar_default.png' ) , { size : 200 } ) ,
81- generate ( logoSvg , resolve ( __dirname , '../public/img/apple-touch-icon.png' ) , { size : 180 , bg : true } ) ,
82- gitea && generate ( logoSvg , resolve ( __dirname , '../public/img/gitea.svg' ) , { size : 32 } ) ,
72+ generate ( logoSvg , '../public/img/logo.svg' , { size : 32 } ) ,
73+ generate ( logoSvg , '../public/img/logo.png' , { size : 512 } ) ,
74+ generate ( faviconSvg , '../public/img/favicon.svg' , { size : 32 } ) ,
75+ generate ( faviconSvg , '../public/img/favicon.png' , { size : 180 } ) ,
76+ generate ( logoSvg , '../public/img/avatar_default.png' , { size : 200 } ) ,
77+ generate ( logoSvg , '../public/img/apple-touch-icon.png' , { size : 180 , bg : true } ) ,
78+ gitea && generate ( logoSvg , '../public/img/gitea.svg' , { size : 32 } ) ,
8379 ] ) ;
8480}
8581
8682main ( ) . then ( exit ) . catch ( exit ) ;
87-
0 commit comments