From d063f6827cc4771d54fb41baa7b194d3229e0afb Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Tue, 17 Sep 2024 00:47:11 +0200 Subject: [PATCH] build(frontend): generate favicons based on svg using local tooling --- .gitignore | 1 + Makefile | 7 ++++- assets/apple-icon-180x180.png | Bin 10380 -> 0 bytes assets/apple-icon-180x180.png.license | 3 -- assets/favicon.ico | Bin 1150 -> 0 bytes assets/favicon.ico.license | 3 -- assets/favicon.svg.license | 3 -- utils/faviconize.pl | 42 ++++++++++++++++++++++++++ 8 files changed, 49 insertions(+), 10 deletions(-) delete mode 100644 assets/apple-icon-180x180.png delete mode 100644 assets/apple-icon-180x180.png.license delete mode 100644 assets/favicon.ico delete mode 100644 assets/favicon.ico.license delete mode 100644 assets/favicon.svg.license create mode 100755 utils/faviconize.pl diff --git a/.gitignore b/.gitignore index fb7530896..6db07f7bf 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ dist* node_modules/ assets/icons +assets/favicons bin/ *.hi *.o diff --git a/Makefile b/Makefile index 282944364..37cf6fbba 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ all: .PHONY: clean clean: - rm -rf node_modules .npm .cache assets/icons well-known static/ + rm -rf node_modules .npm .cache assets/icons assets/favicons well-known static/ rm -rf .stack .stack-work .stack-work-build .stack-work-run .stack-work-test .stack-work-doc rm -rf bin/ @@ -105,7 +105,11 @@ node_modules: package.json package-lock.json package-lock.json: package.json npm install --cache .npm --prefer-offline +# FIXME: refraining from targets below assets/ (e.g. assets/icons, assets/favicon) to avoid / in target name for now (and maybe to avoid target name pollution) assets: node_modules +# favicons + ./utils/faviconize.pl assets/favicon.svg long assets/favicons +# site icons ./utils/renamer.pl node_modules/@fortawesome/fontawesome-free/svgs/solid utils/rename-fa.json assets/icons/fradrive ./utils/renamer.pl node_modules/@fortawesome/fontawesome-free/svgs/regular utils/rename-fa.json assets/icons/fradrive assets/.assets: @@ -196,6 +200,7 @@ serve-database: --containerized-database .PHONY: --containerized-database --containerized-database: FRADRIVE_SERVICE=database +# port forwarding is disabled in --network=host mode; nevertheless it is stated here for documentation reasons --containerized-database: CONTAINER_PORTS=-p 5432:5432 --network="host" --containerized-database: --image-build if [ "$(IN_CONTAINER)" == "false" ] ; then \ diff --git a/assets/apple-icon-180x180.png b/assets/apple-icon-180x180.png deleted file mode 100644 index 7616ebd510bb21218fa88b6549daeb3ec4322ad8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10380 zcmd6Nbx>Tv*Cj~^ZXpodHMq-Q!JUNQ1lPe~a6)j`;K7515G=SuaCi6M4#6F^`R!Ki zw_nx%yR}6#W_xWSu? zDvH9vl|`f88NLLcpE-V%7K1ApBHjTX$c<$_D#F2e(89s_1i-=FfJZ*taB$9SaB#Z@ zaBz@saBz6`Y4ys2;0pvJd1(o_$EUyVP5E))39`M6mLs^!{O6MDwGxJdqj{8-5LI=X zJ4m;%SDjA&ojG4PVR>-N;)?}+mYUAqF@s?Ir(w->e@2OTUY15h)(rc7Y@e#)7nM^- zFFuFJxZ@dFMdI!#Atgat9{6saZ}2Zf5#W(Vn&lUZ6Frt2j_$n{4in#DV~bfiX8vOF zo!D*ua+KpZ>^}T?iR#ZVH4Y9o{G=F}k6)X0Hd67|5AdCgz`VFB#QMP8J-`1&=%Alrl+I z6EublIowNbtF~T9Zqo!xcs2WWlYZ)TZLSFV^$Sff0}BzuX?zAM8B1-(k{+O4Y;-WE z(|o&_>i*Z)^z5SE?RrCsMd!C}_udd|*ob^cSQuCHMU{5Om+GikY$~{XC9Rp37Sx8t z;q#uN$zQY8#UV%D-pm57iL0lQSLday$Ft`5qayKnzLaO#(qehoKMVUeiI#tE9X&Ru zq@|g_1qC%WUg`;K4QZ9`ou7MfgPzB2sCzTj#Ym!9Gc~1gu1glJTd1sO$hEXMS$N#o zkn{zZ*WM?qnTq_hcpPT9*6%&}nHR^ci0N*EoRQWt)HD_|O$~nD4_nUGOFBN<%p+q) zTN*8v*)`Lh*p_L}B)26aB&32eZVx|o@ir?D|4@7ht;!KC*xY=z%YHGW(`6Q|9CvG!8%cJV zx)Z7wMlau&1d0dWgh-fiV8xGEs_idm^`WvB8LxE-PFP-Z6A~3S-r5o=ZLMOCDh2?n zh#eYPFKTz34o^F5rJEi*=YHWRt&u!i(Soz&kW=!jK9Pa4k%%2=O z;79H-u2|=J*}z-oY_(##`0d9JL*e^Myl8U^bolOUq$VU8xsMfw;-tfZD&2>R8#p-l z9|~BK)Np8qGRZdcMT7?N^uL)4YBI9E-%4H98Ps)6$Qh4(XodHGg+aQXRXkX>j^Jmk z9H94Z!qRu_BNe8QYUk_sMY+{H;p^+iNfJ0T5CM|Lt5t%ByDd_&tYmyTOb)Wo)-N$d zbhr<{+}td9UTBeFbdT)|bbkoYgPXAI>5*BT`V{WITcBpWtfwFq;nV zLCocnRrgV**0yNAisQTujo_&QvzC_ZnwQt^1eT2rhJ><7!2pU9u&`jZy13=94Cg(V z`+k|F%MnZdPkPfaL1WoiQ?KJr&c=tE&TaC4bFbik7AdSHn_Fs?Q5r7{i)SHi4Syma zNM4*64Wi8_~gJv}oNu(6_PWfBq`0X8s<1u;j zC%@Oz(D(zLfE_jU*B(^IA|E~H`Q%g0gD9*YkhcI4_d_aHM^#nJQ_+OxR!v4t?$Tgk z5h&)R4Tp2xWc2o0!eFslO_1QlhW^>A!ic^;r%LTfwdqGmO61^?zTPbp8>D=kR}1K)0z_k za&Wia&$_Rl&q}_J7s$wut7xb61)*Q>&nUNT4!(>}$Wxku=*hC-ubk~r=y@Kak$H|d zkc`i9Ao!<%_bDhH&N$=ueaDxw$5cL{vi@3Z+g>x`;@Jzq^9hEF{er&>{ET!;-}s#S z#HLGd81 zkS_0mh6}`>7&6h_&&ms1m+?Mh;dD%X`3wa$a(_;Z$M9@D%v^u^GxHm;I-e*Ey4wrq z-(FuxB_-c3czs5$S<(*ZT+PX87gZTY0;Ylpq@P_jl+E7N>WB(vu<6--lQG$yFV-%m zd@Jie`jduRP2S9mgN8;bk@bE458Al7IqO7bc{*O+>lAsEv$NW(cCxvv$x@b)2`)iK zPG`%ice=W7oSkPigfiAm(06tq@S>Vy>`)o}te1BWY-HXG?Nh~pf)7`6XCB<()PnV) zpsLK&S0S~CMD(tk+K+_K?wcC?iR@hMv?NIoz(RVBAs><*K<=YnC{?It$OZ+z6_=2g z|NYN9<(L@1=Pv>S-{RopMx;)rvgp}`1RHO~&*9=Q(e_F+Xzb*6Ch=jQK~-ZTyj zP%|)m9NkkJ{rz{$rr@;%6wWt;6tA?!D+WY)+qyh^olI_EbV*4G?=i-OEBCl0k1mH!#=XS_|AS)zfi+~_FUAOIG zs7Wn0d;uTAU^k z-39c*9OLRvhd9n|3J{A4Bg6XoxGb$U8d7HW2~@(3Ekc^Ui=q0x(@u%n-#1ZZz|E$o zkX>bxrNhFIM?X&n07E9>6cP0jZ+Vvke{@8grhHB{X zchB3^jExv{Szo+D>8!^)r3$8&h4-f<;#pTwH%psxpMz|A z5X?+g!L7xx0ycau&jTy&yZIIyf|?sshUdOW?d@JHI{2I0qtBEwxEv1`klutx+w)=D z_^c1tXs%A9GE|bkv-}lhGmmn;t6^1pK4k=Vb1S6N$k(=&i3!_{54>5VyozOX;eRUNJav?f4elB?Rm*WX8g1jJ=qb&J8 zJ7n<9I>-S}hx6|{ULm0&X#LuLllT6s+s7GHf?LSNvOIDEN?-p*+IBaYzN}XAaXF19 zr=)FU=u)r5^Jg*d$i>+3DX>C1jx23mv1$YYhVf|eagYNg0BeW|ahi1}!PT&}20Q1` zlm;^Z5mRpLYdrPv^YHADMbg~TVMX(N|4p;`)mPe5C9cGUxMf~nmP~t(VyRbLg85tq zI>52`*Gt!Qc3zigavu^%DWuy?;u?RFP+DYiy7~O%B-UJVzqj@dQ$OYJXAam4$_OhN zFtb<7oqe4j8v6D2k?Z)J5UiKuhG#HwK92>OyHk|g-0$pNF%#0stpbDZhib<08qkE!9pBGIHRj9 z@P0izq+lvw!|yH2U?p)SEQpJXEcNwiXlQQs4dNQq@yyx6XYgb(ApN`-(QS|RZluWg z>_C(CwI}p7t=G-?I5FQyj!YrY>x`zejfIP5<%qhrpB*@0K-f40&Hof%&1X1r6#0DXs?$=>Fnq?uQ z>)jPH`OO=#s@_-PL?917fi9`FtI<03LZiK@Ht4pZ!E!UkbKkslW*%>(knA)K*!Bn3 zV9d+7)Km$FvY4?kE(XSN`nT+{si^?Zk>)7N%Z0u17xhDi68Oz zJm}a>%&mz+kd$A}qz3V~_7}}!;h>;(-<(Aj5#lIv-**Z+*ZAF}M@}Vslr~w$GEbRf z*sD4no#=$t=BT5^dzJ+P3qY26tb zcGYC-AD{5N=6I+feu7+vX#^HpP)=2TsWnY*VPn^1Gp|d+$o{e{-nAOuziTmK{;}xZ z^`>3UxLB?QmruwLMDBF%DvIj6NrEXwW{D``x{mAGA(U& z6=$lrzY{u9Hd8~U@{K4lVB`d8hIb>ry!CrlIY;D~6LZ)IFRlDLXr1;KHa=(4U~(k< z$oiL|c??V#i9RDAoo-Zwitqe2Z3EjPd$F+y%PZn~`o`W9{KX8E2nzC)x6L66oHa&9 zVlFe1gqWHZto`^?+OdH$HfI@~IP{T{gqJd07^8UFYPOa=bAP`e$?Wo?p3ikijt$>T z_O5uzUZH)%Qu1ZKvHUDt>n-20x7CHKL#wn6ZZC{T z-3<7XlQoWP0a(N!-UbeIuysNifiiBaiX{5=^&UC`x>QahA+>-&a&|UOSolV{IX{2z z`Z{$?dOFT~y|4s5qK10vDa+viO^5{_6YJy2bsHEeDER){AWVI!%-DZ_c{vc^VV6O? zf)VUOb<@+k)ANaG{iYEEJ|@^*ZD`GsrJ37I@R(}`OAhwlIUxt9vx!;XtP9u|CjE?| za?_poM8e+wxN%tky{KshOE^}3pWcc=^J*bL#ajO!_zhNZL-To!^Sw?cS3n|Eq^60=)Bn2u$Y)I zQ3mYhWTX5~XJ?mec+POV0UP$PclG=WkZuSFj*ZK%@QKe1INZxL8^Mzt%Knpjoh+!_ zzZu(+nX|F}(re1s+DnB;bz8e`tD(DZtr#!Q>)g&KPeEiN&~5sTB*b10CzTTg^5CyR z&Yz{jhUdH1mX_u8%!)M3io90Na&3mkl*|mH`W!i{iR;czPwAd0rSO0sszysgs6UD*_2f0 z=llyWd5Tn?4HeyVQBmJ#{ws6xgbEUD_=ZrK#G3qWN%QCkvXF7aDuD^*du(Cv$G+gIYps zO-oZysi!HfySql|;rQ~=CeUq8`}KL)+1NgJwk8R~!iy#?fw4@7Gf-R(nG7d?F##M& zw+OMVzw$J!Z%EgvWorYd1wf}zyqU7u=Wb2Lc*Q6K<``$1Z&aT=e6e2VVTH_g_2D)t zCdT1hyQ{d^MbGP+$*yUVIFgsKM+REOpk6XybhLy5c$~rc?!Lufi5_||l?=$Jr(41N z?qdVjr&La^0>BAYoPua)x{Oz-6i}%vC1B-==>qcCL$0R;s z5j>pbAMVX{-ve`t%^IyMX`1LiYcLJ|e#zUllTw)G-Gjs@rR zU%T29;RQ({U+vMIDVzR1ud8bVpJ#3K3&eVUM>C{CwTvRH&a(TJy!J+<;*Y&V;|tCj z{L42}gg{ZstPH0JgVmMhNF%x(RMBFP?6%ut(&r&(19WHG%%5cE{TbbLSyxnDeT-X? zH9Q+&pv^HFBB0bAk4i6caYq7>SvvE{)FPDFI4Ur4WJgt1!~FPcyzof~h>ypoBXK}{ zexia_)V(ob052c4EDwD?sv2Lg z4nMr98p*W2_{N!~#?aHtZr@FkCwObk?0xAPh>tdhY@Q=V@hZHtznkpx1c*TE9mt%d z?`13!y1yp=SX=tc=)Mx@T%;A}s8|eR!_O-0@AQ443-m5V^C2|A1n``Z|0Z)Fipc}2 z@FZ|_la+3^A||PPdNg{(tGh3k!bgz}att=_22gVXg`*B~2!3G}I z7d{ET!(q7NNwY_or?ciS?xwxdHvr+y5zt!1-@1SVB;LLRT2;}fq;7vq7W1Q}Fl71V zpms`se^RA%!quGUdVZ&$(NpTTjkb2x6CVl;PB;D7Q-hU`E_F)CZ!cX>SHttcal~QX zv0qDDCO{&Qmz*d!Q)B@?)4J%Y@!?adkgZ?G7V7xy&icA6XE4UO!`U`mdb(1cWCnI< zUmsfYX?p5RExX-Zg%=f-*OGgFV3NKt(P9^dZKb0px>!FY9gW4$;z6U!L)gV(vBAMy zqXYW}$e4JnQTAXY0I5c1_;40+bWJMVGTS<2@FTS|JYh6Iyj5yIiEn?k9?8q{q=Z53 zTBJx?hA58^?IeYY{RvkyGZbRQpgT_*{ z@jgNnZCvnEm;x9dq*}lS{d(71kD?{_>=xoaAIRX~61cC1S^}XbQ@w>BfRn%P@E)%- zBP*-t>PCkzsm1!4Px=zHfXFliw9f@6624Lzod2^6Jq4XyNdjX);>aF%kxp`Jh7e582B=0m zJ05}=Ktf~=7liNx7M^@zS->ixHq1d-b1lL|TgsvJ}IXjld$ zt(cHbI!B@F_jU4e5ddXqRWqgU?kX@ajP>+%ac}*NaCf?vM8v3bez|&C+F6)qhmD*s%2Wsvu?*sgrr%8Pnyz|MX^(#Ekv> z_5IO2U^p|@&z}3*SJE#Lw-iW`gZY3!2P7JYz2eR%y#i3CcpRI?h>3-!maqskArQ5D zfRq7DGR#<-wiV9G6d;CLF>L7UjIgm$pz^RHMTz}COEU7aaSqS9fNo<@!fPCTK0XNm z5~#hHZ4G^FKFc!#$O}j>$8rg$q1wz}@lzxZhu+k>$Vwi z&8lI<^Z992+S=Ci9MRI8)0Bm(&n+xG0F!&F_Xr%)o1SjoZQs=F?a2)w_`!KJrOewh zhGKSs;)0#Rx>-p~&yZ4fJ;ZVB3%;=gCHB@3`ss0ZlktfGP8WwX@&h(dN9(Pi0%ID zpF;M2F?lE#Y^R{g>a-TfYqkx=-*$HgECREsW!tvmczH45DcuAqfbW(<-8EF$mtdAv zu)&pFYHk98n=7vgsT>zMc3Sb`H?{W{*xH{oI`@7L2J?X^tul2SM;!`?c&6uA;d-Qg zpcc0Fo4Q=;guzr)P-#j#n3tz#ec!bEmj%#PCxo@YLPSI%Ae9jS+*;*ProC|_kS^-k zY_H=4m#(x#&<~x6&9n=#tgK3k_YEDbMGf9f#4;mE7V% zCFx*)p!2l1H@hi|xI3PfA;po3qZO-*>*;X-&Qbp5GxAekGsPip)??PUvKzjLiH>)* z7NoXE&!3iSTeo5l&*$NUm9*C-JC%vdiKCsN^Ol9D9Lxq1OmA_`8x_3_$YHXrD^kU* zJeW;BX*~tX%*+F%)o%(gwZ75%PW$Vnv2nw*)gUpWO6$V#*K`UXRd-WG7a0I}+1K|m z|Jvi^odW=iQze6WHPg(EE;Sej+Ypx#{E{&hF zqo%nkh})_>pM;Q!p3NQP`Mr!dV;Sln>6px=n^R@( zj?bRzS5YK+fO(OU?Yj$7Kp<&cJQ$Lwx9H=O8y(gctH%Mgo=0)lJ>iMVRzQ3uvePkw z_HDgc%4xOnyOhNJ1A)!JyGwj-@Xw;q=Q5=25@V^s{^uqJNMtC$gUb&# zsC&~}idMAcMNA0^jGPu0Wy20S9w(<%vOvLE8>5*=uMxJVRe0-UVZm^@SQ8;lrrWB> zy8(b&x8?a$U6xn~@&};qv8hc1x0BGFjdUqj6!NLTli05Zg6c%^thUNVEkp>X{P zcm`mGPw>-`!HFCzO1+wlEC)|A^w5@0S9d6&B%l400(~Xo}o3f?N2kCV}%tt9WkbC~?40PqGV-8V!`s4_=Jste!zOl`R{ z^%+t^R5CC6y}XbcJ46EnPjH%y+k*s2-Ay{!ry!B0{VCPsRs(^S6yr<@epPS#4 z`*|vo1ciSlCm*@s_?`yjZ19tS=_qYD|+CH6*l$0Xb%%s?C$$XVz z3sjqm-tmWQdflm)vDBei6l6-~A6|K+K;aZOwFF=Gq z+mo!=r8T!54ke~L+J&vcbeE!|sz&tet`O>3rn|qHS?r+yD@n4~%q_48s4x$v`=Ufm zIdtu#5W7BB^CsMNVR+v~#Mfs`?0phZGmnOMOX^xTVt2f0Epdy87@y#@D~s=i%V(z( zle0)8|F+}XXABBm=q#0K9TPLqycX}(4zd~nE>pc!g_`1k# z?~lqX4?ytu;z9P6VUno7xy6_J6j(?B{LX!Tvx0L6ArjPgUU`q6%nSd-{2OEI>t=Zj zo4bH4Ug~_bbG3adHM&v}cX3gv z`Kk?D1VcGKn|lxEM>r+d$y`?ksk_Kt8OV3Eapt7;#2miwzEMfvmeYrVy1$~a&sf-*bHxlbS}o6WJ|aV_9FwJE-RQ+$z(gQEovRJ|4Zvrcg)bXzhnd2#pOF7UBd$*_ z^|_x$lC~VZnDp^2l_ry(XY(kZy>u|=TxrIzZ}L04(r}T7GSpxy;L$EiRu9akI9WNM zJ_r=DtBxS**3NLM+QrirHg4iK{Py3&In9ekEsNx8jOzzxH_zoG?KL}WF}prNgQ@=H z$yaYbZZ!nrZ12KO=9l#-MV7xi@s~W4gu<;CGZ9C<^Q`g!y7rJ#x1c&jQ<{v#YSSfz z4Sz!JW}Evv5{YyeULZWwHnC8k*Bu9ST*5;TD8PAV(^cQkvesnapBsu%#Mo<=sG3x~ zEO|67C6e5<5`E=?mi1MJniAAsR`#{5oZkIJs*3**Kq^j6*;%;m>O{|2oCHj%0R%BX zngng9J{Vd66$&9i?t8^}Z*QDgUPGCLayGGpDkutEAK0bVxj9I@ji{AS4v3;+14SL{ z3n@oloaCoLj6={-aFdf*BW^lAKb8>;eIuCA^u7Ei6g1zNM%!ORzeo(6=&e;QF0>TF{Kfk@aH zJKLDrIzb>GKvPFJ_WZ{N*8kS#KXXDLP*V$Ys1qDJKL;ipED*H8`!D1CuQnPMCQi_& zCgVjENT3P9e`%s1|jS6BLP<0z_vR&eaxe87x+9PE5f`i;Aw z3FdzpN5#U!6pl?yEIwO!AAF_$U%pcNC<|w1VQmVQ&uU}qWNl~8YG&wSVQgpX$ojuG zhLzKZjl+b^l#R`Vhm(uXh?kFx*O-r!orBMaliie)hn)rVU;*#P0sAQnW`L8GRFWtW HGw}N#*`MiG diff --git a/assets/apple-icon-180x180.png.license b/assets/apple-icon-180x180.png.license deleted file mode 100644 index dfb358d6a..000000000 --- a/assets/apple-icon-180x180.png.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2022 Fraport AG - -SPDX-License-Identifier: LicenseRef-Fraport-Corporate-Design diff --git a/assets/favicon.ico b/assets/favicon.ico deleted file mode 100644 index 8d3db0787d1fe3cee902f0f9e490bd540835630e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmZQzU<5(|0R|wcz>vYhz#zuJz@P!dKp~(AL>x#lFaYI*xFHzK2NDw*82%47Jeh^% z|8!nnvfVXPNa+8TfB>-m83F?T=SoZCG;1ms*Z=AK{3!CvO-%lu?dbuFZSe5;zuwgq zMIJf4rf_ilUtwzce`ie0e~{WW_V)ju9Xs~_aB(qM&))QOI2&0Xj16+zN(+nsE6mLP z?}(26e|g4?|0kQ8{!ioP2J2sCZT``l0@qB_{U&NLktc135YWFHV{A|JwZdV08y_bN`=g zY{XCxa~Cce6t@Qp3jWWQkO12Ya}O@{*u+74X9x=ZpT@(3Hy*L+rL`EW93Ynl0AMD` AsQ>@~ diff --git a/assets/favicon.ico.license b/assets/favicon.ico.license deleted file mode 100644 index dfb358d6a..000000000 --- a/assets/favicon.ico.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2022 Fraport AG - -SPDX-License-Identifier: LicenseRef-Fraport-Corporate-Design diff --git a/assets/favicon.svg.license b/assets/favicon.svg.license deleted file mode 100644 index dfb358d6a..000000000 --- a/assets/favicon.svg.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2022 Fraport AG - -SPDX-License-Identifier: LicenseRef-Fraport-Corporate-Design diff --git a/utils/faviconize.pl b/utils/faviconize.pl new file mode 100755 index 000000000..8298a4cc5 --- /dev/null +++ b/utils/faviconize.pl @@ -0,0 +1,42 @@ +#!/usr/bin/env perl + +use strict; +use warnings; + +my ($file, $sizes, $faviconDir) = @ARGV; + +die "usage: $0 [origfile] [sizes] [faviconDir] (sizes is ,-seperated list of side length or short, medium or long\n" unless defined $file and defined $sizes and defined $faviconDir; + +die "File '$file' not found!\n" unless -e $file; + +$sizes = '16,32' if 'short' eq $sizes; +$sizes = '16,32,48,64,128,256' if 'medium' eq $sizes; +$sizes = '16,32,48,64,128,192,228,230,256,512' if 'long' eq $sizes; + +my @sizes = split m/,/, $sizes; + +my $include = ""; + +mkdir($faviconDir); +system("rm $faviconDir/*"); +for my $s(@sizes) { + resize($s, "favicon-${s}x$s.png"); +} + +resize(180, "apple-touch-icon.png"); + +sub resize { + my ($size, $newfile) = @_; + my $ret = system("convert '$file' -resize '${size}x$size' '$faviconDir/$newfile'"); + die "$0: convert exited with error code $ret on generating '$faviconDir/$newfile'\n" if $ret; + die "$0: output file '$faviconDir/$newfile' could not be generated\n" unless -e "$faviconDir/$newfile"; + my $icon = "icon"; + $icon = "apple-touch-icon" if $newfile=~m#apple#; + $include .= qq## +} + +my $wh = undef; +open($wh, '>', "$faviconDir/include.html") or die "Could not write '$faviconDir/include.html', because: $!"; +print $wh $include; + +