From cf6e65cc03c5d66cf1a24516669c04bdcafe08bb Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sat, 28 Dec 2024 11:07:48 +0000 Subject: [PATCH] Improve compress script Generate zst and br files, then remove any that are actually larger than the source file --- public/assets/css/app.css.zst | Bin 0 -> 98 bytes public/assets/css/code.css.br | Bin 39 -> 0 bytes public/assets/css/colours.css.zst | Bin 0 -> 163 bytes public/assets/css/content.css.zst | Bin 0 -> 467 bytes public/assets/css/fonts.css.zst | Bin 0 -> 121 bytes public/assets/css/h-card.css.zst | Bin 0 -> 293 bytes public/assets/css/indieauth.css.zst | Bin 0 -> 175 bytes public/assets/css/layout.css.zst | Bin 0 -> 335 bytes public/assets/css/notes.css.zst | Bin 0 -> 342 bytes public/assets/css/variables.css.zst | Bin 0 -> 492 bytes public/assets/frontend/is-land.js.zst | Bin 0 -> 2816 bytes public/assets/frontend/snow-fall.js.zst | Bin 0 -> 1255 bytes public/assets/highlight/zenburn.css.zst | Bin 0 -> 439 bytes public/assets/js/app.js.zst | Bin 0 -> 173 bytes public/assets/js/auth.js.zst | Bin 0 -> 1538 bytes scripts/compress.sh | 34 +++++++++++++++++++++--- 16 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 public/assets/css/app.css.zst delete mode 100644 public/assets/css/code.css.br create mode 100644 public/assets/css/colours.css.zst create mode 100644 public/assets/css/content.css.zst create mode 100644 public/assets/css/fonts.css.zst create mode 100644 public/assets/css/h-card.css.zst create mode 100644 public/assets/css/indieauth.css.zst create mode 100644 public/assets/css/layout.css.zst create mode 100644 public/assets/css/notes.css.zst create mode 100644 public/assets/css/variables.css.zst create mode 100644 public/assets/frontend/is-land.js.zst create mode 100644 public/assets/frontend/snow-fall.js.zst create mode 100644 public/assets/highlight/zenburn.css.zst create mode 100644 public/assets/js/app.js.zst create mode 100644 public/assets/js/auth.js.zst diff --git a/public/assets/css/app.css.zst b/public/assets/css/app.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..f27d4f69b40a88492db239de5cc7c41599e04e6a GIT binary patch literal 98 zcmV-o0G%-^;0tj8 diff --git a/public/assets/css/colours.css.zst b/public/assets/css/colours.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..fd30b78caaa631cca520e68a3d36600883536445 GIT binary patch literal 163 zcmV;U09^klwJ-f-bpWjd0P=S26%e RRS^e*T&jR!k^wfBpW_-qO4a}X literal 0 HcmV?d00001 diff --git a/public/assets/css/content.css.zst b/public/assets/css/content.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..01cfa187949e4bc6f98f7596d60239f926159143 GIT binary patch literal 467 zcmV;^0WAI~wJ-f-&H^nC05(`e9AIw_19l84d6ODqq(p8t2ts#e1=V`49RZvmN<08L z06hRoCA*6}BkK&kS0}`Q=j7C`ZdYN4bKdhCD(~V&SLNNfV=Nc>vm(?m%z_|jEj7wB zAtV?qm)v`^$T9-CSX=d}@->3`&6kC8^Eur6>77*JSM=}l;l*#wE@@Z(o}(-JhR^-n z^<%V{dUJt0hFL_^6^(;82v_J+pXMRQDg?b+%AI4y&eef!nBH`=K8GZoEFhv zWXG;--x{*3&~y*yuyjz`llm&G=z7kH0?b8IvWEH#QS>FNTO+qMt5OTOP8wiP3|<>= zGF%YOF!-dqQna|y+gkhZ_Cv9RWx{85m!xwP(*BJl0#2x*5rNFu&;&_AK?|D!AOb?1 zLc0M$98Pg;R1S*Kwhx6P&iCObUpJeR~E%oZPd_SNeE8_|5B8r z3h&AH)ZB497!Dkus{~i9F~P>9MD&b#NNmk!e*!9G*aXm5l{SL0a9BtdqtzSTCTTN( JRRsczgu>U_-#!2U literal 0 HcmV?d00001 diff --git a/public/assets/css/fonts.css.zst b/public/assets/css/fonts.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..c8ec55f1614915efea28f20a0c179550e1638e6a GIT binary patch literal 121 zcmV-<0EYi4wJ-f7(q#hx0>u&-fXxHIe(6N^BPmxzNeujiQP{cG6WtXITUVv2NXWds z!zhU1Z6Lh1oS82_Huh_`u1YL+gWy!DyMe|ZM(6^gyLRL|=8c%LPXY`8nLr8v4gd@Q bVh4)W;dlk|G<8Ud5J0$8V3;xU&)9}N{AV^N literal 0 HcmV?d00001 diff --git a/public/assets/css/h-card.css.zst b/public/assets/css/h-card.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..b54e6a24d851db9a0812c38e78559326649e4004 GIT binary patch literal 293 zcmV+=0owj3wJ-f-Isv^10CJBk7;tX`5Rv|tVn~}6m*xNeEZ5oc_NxARFF3eqD5CJPFP(&cd%nm>T zrj#me*3>O*6&^q{5FZQg1c3+O1(geu?!ZOSJnz^qd+%+6Z7!wGzcES rH3l5Ei6&-bVSQ2Do|QMzBX-a1k*y_Axa%jWfpo)Sb|HkBLQwPP+1iR# literal 0 HcmV?d00001 diff --git a/public/assets/css/indieauth.css.zst b/public/assets/css/indieauth.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..5e9e979fec4c0d61e798d10781faade3dd7a5091 GIT binary patch literal 175 zcmV;g08sxZwJ-f-FaQk&05VD*7J$zIkV8yEN{khvGL#8*d3GGeLG!}E1zg&T&B|v3 z^+N3kLYy31AmxccydBLxacrAgGb+uh=}_B}V^uciVQuz{;n)+g=A&}+=O~9b_N(uc zYc3C>cI2-xNFIjpt8^+N2A|Tg_vXmm`~MDifOQKL<+3&p0S*9B*o3N4>t2eyC1(B=7fSzlwi{tpPRF@cI&84}9&;c|?6Htr+D~kW`@I71b&si< z8Vju$@ymWW9hP1#tl6X#GB(4Mg;iD;H68A+`gtF-aEp{x{n>roK2D<{Iw(L!FpgDu zkw}QRnji%!sQr&IWdvbI2N;9f0Xs?|r-rGogdNK|+UZhcrpMeW;CK_-i_jG*Rv>yH zVvq0`sG!XuK?V$8%bE-+fgFL4PJ?R9NpOxF^|B&p2ofM+#0m@oC=5}bQ*lsTBcXpV hx8Pl74^XxoA+U2W40OXy35XAA$kVY190pF;v1tE4l$!tm literal 0 HcmV?d00001 diff --git a/public/assets/css/notes.css.zst b/public/assets/css/notes.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..f9cdbf82b10f00f413f6c2d4721944e9bf876d40 GIT binary patch literal 342 zcmV-c0jd5dwJ-f-rvXI@00vPr9AIr5ERCVjWXj}EY$#-X6b0+~^{|4}M+^eNPbvT^ z04f0P@X-pt>Ydr<)vRFq22AhuxokAPm~3`l8RF|@%$tN1T%Z6EAi-v30sE{{@z}+{ z1ku$TD@66$E89w8V>$%=$1v0*<0{tZAO91~PF9FN7qLL8q` z3Z;EQ8Y&bu0#k$im>kN=@`O1~R}hG=lIm1udtpOZc0moSu>#+&fQG~sMF5{tgf-aP oL5qO^c5y{@T7O>G8FsWVpabHr8+k+bsR&g$RHG4344bSqjoCn(h5!Hn literal 0 HcmV?d00001 diff --git a/public/assets/css/variables.css.zst b/public/assets/css/variables.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..e1ccda8b6eac9e6480adf49022b1237620d23799 GIT binary patch literal 492 zcmVZYH_fW{!!_idAS7Xa3!5H1iEF1TeN5%l40eUwe{orIr#& zqAtHAirgUs!8!PHbm3k8g%b?!kjJ}!eFf9uLBF^iZQHpSgym=W&U91!JOATs8Lu5~ zH;s8)KjHLNy6ubc%Wm|tKR-vW);OBzHWuO>wYuBgMQGb;N=XF#;slSfYW~e`Y%sBP zg43I1^!T6ysz*rz%7!iP7e`a>>Pw^_|F$*e@h2!L$?AYNbAq9iFZxwEFKjMU^viCl zZ7wo8##tTE2f_vb7%llE>9La9PBN_%J~`d0rgxzB)&Mx&;B$i1^sK1)N+~;#snoDo~3gVm}T6s=h~0n;ii;AW*mwqkIj!eC&+W3#5UxrkJB*SW722>zMP igp8g;fIFhO>Wev*F~K6opwb{|jptusYXuoUK8DW)knQmR literal 0 HcmV?d00001 diff --git a/public/assets/frontend/is-land.js.zst b/public/assets/frontend/is-land.js.zst new file mode 100644 index 0000000000000000000000000000000000000000..fda6b38cb7ebf6a204cfff28e4d90c7862955318 GIT binary patch literal 2816 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 S;_W~Pf~MDs+_VCp3#xMVDpu?O literal 0 HcmV?d00001 diff --git a/public/assets/frontend/snow-fall.js.zst b/public/assets/frontend/snow-fall.js.zst new file mode 100644 index 0000000000000000000000000000000000000000..96c25cccd41a352d77ad04cf4fadb1c59304b2b3 GIT binary patch literal 1255 zcmVejH6L;@b7pf@I(GoQgVV|U=c zt@rOI4NFD1T{J5}P2AHA)~Ye}IJ=A`8jN-)bnCbaja zB*sLe{IVeThr|Sb`YY9G?h*TLF0aI47IxKWIOOG~g&IZbFpNsiS3ijQ{CA9O!FV)| z=Fz4O+O*j%Cy092Kp#|jUcYnESX`wJ$EsBg*-d@%-TQ)Z(dVsJB4E%ULIQQj`Tx2SFLBi1!&M$RqU&g+L%W#f+gab(ji;QOWYiR2}7x&Ra#;_(#69 zLQx4vza|@)W{Iw%2$lEnGb%7#i-KU_6xn{yX;XXvp^Sy%(CyKO4aPiA8K3} zRKh+!XLVL_VQBB6o*fV7u%jYmmXD^= z98rf^j?+TOtA4*8(=-Rm-JmrYpc6`jOxt%mA9THzfcqAdDZ^{EURs2DZbGfHtd2@r zK-cA}x}zS@{zVbz|AAl0vx4>MtY$6j`+HhYBoc{4C`V-?Oaq`7F6ehds5EqxKgN8Y zlh)1(zf1W_?7c#?+{3Vns(#S=6-7--7XkO*GWTPc0@FBw7pS47V`@euNm9tL89@x9 zAPrM^9+Jsuj7g=4h)p08q%;Kug|r5iC?Fx7Fb-ka3riVNkR)`ms~;OOS?`UI+mSg4 zkeAzz2?eGUncJ9XvqXDK#SeOW1ayu>7@VcnBn@eH)fi5g-BQfDEoM!Dqs)}8>>dh? zv;>+4qAnPVoW5*W6f&G!fJ_P2mdNt46u^_p{OHFpgyxWpFiTvHIJNA@wgRINVOO%c z(vg{3NMMT`BG(oauxI+j{$7xf6(#--Ho8_Qu<#kN7VlLmbr4tB5Y=N^``zb=>nkc; z5&c972%O+5HHPOq@kLs8rg*v_QMvgu6FY=nGFG4i+ae=Y`F(nUF+z|n{QkjZ< ze)k%#7r6iUn2iA2zyOfWiD6xDvrAxrQ4{lIilxuD&vhIi$7r*+nV2<`G z8pB)K?Q)YMa+81{nmsC3P2JqZ2n;MILqL_p2S$(pXfL32oPBH%mNs@wb#a$$<%bbmzOF}p65R%VLYF@2G5sF3#Quy$s z*%AKw|DI(%!{+euh&Vn#HE>GrZ5r^$s?F$qe}f&1ZwY3NLvKxVp#16JyK%>8VL`2= z=}Z8{gsy7&VE)uy6868-)Nl4AZ;{HWjpmb~K)Dy%5-CI^zT7!xr~O&M@}4GxT5^U| RHO{jXlQVtkRspcuz63l5U_1Z- literal 0 HcmV?d00001 diff --git a/public/assets/highlight/zenburn.css.zst b/public/assets/highlight/zenburn.css.zst new file mode 100644 index 0000000000000000000000000000000000000000..f7ddaa93525364eaffa5c740cc0a4531d905c471 GIT binary patch literal 439 zcmV;o0Z9HRwJ-f-vjR;G09Khw9x!trvyW|FHxer-8Y5d^m4pow*Zpf^mQ{k5iiTlB z07L*j02jkrhrwD^v$MpLm0U@-!?xCD$WV4G=en-U)&t_$YD#`^iY$c@I(EtmT3{(^ zpd6jgYU8AD+dE%ZQi{p0tTi|U5`TftZ|z+Pj?PV|GlkD;G)Je;_8`DUPEwOfnZ_)3 z!hqOFlF&Jx=2N^8r?8p+XjgN0H8O2F+o;1nRp@q?XDh}7-|iIi$zo^GQ%6qttycEt zU`Lh@|9xdtef-*)_Cs&1xz|rINdKA8&KOdzAct^mL7PQN_Onm1pK&*+Jsaz@8qO!% z=r0oNjU*@i2Av;nRCqaGg_SQ;?5B8)r{M3{KPipu7-xgdF~oovtw|`M+%Pr@2E5;MWJJC)5O7yR)<#KKmI&Q*KfYes-pch& zP4Lo=C|Q@*2;f;wxnREStr5;X(799`pyQ}M!x=l5IvC^oRf=W|00ld#;sS~=R1F4a bDR6uU@q&DOFG|%Ykc!CEm5Vi>Mf=fopFvUM literal 0 HcmV?d00001 diff --git a/public/assets/js/auth.js.zst b/public/assets/js/auth.js.zst new file mode 100644 index 0000000000000000000000000000000000000000..9c96525de9317ad98aea69f606489a987ce5e9c2 GIT binary patch literal 1538 zcmV+d2L1UcwJ-f-K^3Jh09JIIC$Jp30kpoMBu*>lNr@$8ljlK#3OabA&_%Db(T~zR z#m>&oiv9}@j{uVZjsPGV+l0g|ZblZrTHE&M=z4BfTGLe3Z%R}xDn*i0R*ls2EFNN! zQ|p%-xz^OclGJ87V@c-BW(_7vvVL9ML=9n7+6QfXfGjll?JDCK^*KA6EuXs8xki+; z;x+)yBz4{~>dNf-Ws90OEPwm>x7*16S7L5C((X3EsD&rV){mV1OKW5XXyNQR4&U1| z2Am3|aj{w*9*s{3Q}F@nU`A-YC@{*oZT)=fLYSwu^R9KPJ;PM$S?nlvm%J2bI;&PM z1p0Wqn!RfV4_-*6W;J|L7T>SVsN)05=x+)+sgI6QeR`5GL~VWR=Hw#Sx9cB&{hu>> zou}N}8#jMjr;hQHY_--Ssy6#6K;lbkri?^g3X>~MxFK>>WXf77N#`@${vO)+_=XZe(UF^4mkv>viSB~~Z3+`D}tkA-A) zoprACO{vuM;*x>MafPM|t?nuH2qCb+{##zAYsrzJ z$Q4D&*{;Xg1Ksz(4izLi4>miwPO{*VHx}ZCvRQ&TvEtYAW{U)~Djbp}Ak(HVmVGg` z##q#<827~i@6L_X#2QkRSC|G#nle`NtMjrpY3>^WYiU^nd+vO2D0oX;9S9kP1OAfP;TflfOU#t0&Gt817fOEM#VL6lVi8(?eAR^s4C|kj#LZlrM?3 zB9*0X^34VPbplAz?EYRYdd9m45iw3U=6kbMP<)3PpuFdG^Z6~V5y?Ous>ajnC0fBNHjd;|FBUIyoo5zy_s+L6|$TUc3iTstMH$BoGv^79t=A5YWV zXyhElLcQdRSZwI=QWBgO=NSqPYQ)3NS%;E~l(|Uj2ZU3;dV9Ks<%rI-O*7RxnAJ;u z2@K2|q&Q#`Mh(Xf$=Z@G8#2X8 /dev/null; then +if ! (( $+commands[fd] )) &> /dev/null; then echo "fd not installed" exit 1 fi -if ! type brotli &> /dev/null; then +if ! (( $+commands[brotli] )) &> /dev/null; then echo "brotli not installed" exit 1 fi -fd -e css -e js --search-path ./public/assets --type f -x brotli --force --best --output={}.br {} +if ! (( $+commands[zstd] )) &> /dev/null; then + echo "zstd not installed" + exit 1 +fi + +# Make .br files +fd --extension css --extension js --search-path ./public/assets --type f --exec brotli --force --best --output={}.br {} +# Make .zst files +fd --extension css --extension js --search-path ./public/assets --type f --exec zstd --quiet --force --ultra -22 --exclude-compressed {} -o {}.zst + +# Remove files that actually got bigger! +fd --extension br --extension zst --search-path ./public/assets --type f --exec sh -c ' +for file; do + src="${file%.br}" + src="${src%.zst}" + if [ -f "$src" ]; then + # Get file sizes using stat with cross-platform compatibility + if [ "$(uname)" = "Darwin" ]; then + file_size=$(stat -f%z "$file") + src_size=$(stat -f%z "$src") + else + file_size=$(stat -c%s "$file") + src_size=$(stat -c%s "$src") + fi + # Compare sizes and conditionally echo rm command + [ "$file_size" -ge "$src_size" ] && rm "$file" + fi +done +' _ {}