From 1b8e8ad26a30142b5a84ddf5e606202ce5886ab7 Mon Sep 17 00:00:00 2001 From: xuu Date: Thu, 9 Nov 2023 11:42:33 -0700 Subject: [PATCH] chore: add favicon --- app.favicon.go | 39 +++++++++++++++++++++++++++++ app.image.go | 2 +- favicon/android-chrome-192x192.png | Bin 0 -> 6623 bytes favicon/android-chrome-512x512.png | Bin 0 -> 23751 bytes favicon/apple-touch-icon.png | Bin 0 -> 5762 bytes favicon/favicon-16x16.png | Bin 0 -> 472 bytes favicon/favicon-32x32.png | Bin 0 -> 847 bytes favicon/favicon.ico | Bin 0 -> 15406 bytes favicon/favicon.txt | 6 +++++ favicon/site.webmanifest | 1 + go.mod | 2 +- image/image.go | 37 ++++++++++++++++++++++++--- image/image_test.go | 9 ++++--- 13 files changed, 87 insertions(+), 9 deletions(-) create mode 100644 app.favicon.go create mode 100644 favicon/android-chrome-192x192.png create mode 100644 favicon/android-chrome-512x512.png create mode 100644 favicon/apple-touch-icon.png create mode 100644 favicon/favicon-16x16.png create mode 100644 favicon/favicon-32x32.png create mode 100644 favicon/favicon.ico create mode 100644 favicon/favicon.txt create mode 100644 favicon/site.webmanifest diff --git a/app.favicon.go b/app.favicon.go new file mode 100644 index 0000000..961d6ed --- /dev/null +++ b/app.favicon.go @@ -0,0 +1,39 @@ +package main + +import ( + "context" + "embed" + "io/fs" + "net/http" + + "go.sour.is/pkg/lg" + "go.sour.is/pkg/service" +) + +var _ = apps.Register(10, func(ctx context.Context, svc *service.Harness) error { + _, span := lg.Span(ctx) + defer span.End() + + svc.Add(&favicon{}) + + return nil +}) + +//go:embed favicon/* +var faviconAsset embed.FS + +type favicon struct{} + +func (favicon) RegisterHTTP(mux *http.ServeMux) { + dir, _ := fs.Sub(faviconAsset, "favicon") + srv := http.FileServer(http.FS(dir)) + + mux.Handle("/favicon.ico", srv) + mux.Handle("/favicon.txt", srv) + mux.Handle("/favicon-16x16.png", srv) + mux.Handle("/favicon-32x32.png", srv) + mux.Handle("/android-chrome-192x192.png", srv) + mux.Handle("/android-chrome-512x512.png", srv) + mux.Handle("/apple-touch-icon.png", srv) + mux.Handle("/site.webmanifest", srv) +} diff --git a/app.image.go b/app.image.go index 72567f0..6186fef 100644 --- a/app.image.go +++ b/app.image.go @@ -15,7 +15,7 @@ var _ = apps.Register(40, func(ctx context.Context, svc *service.Harness) error store := env.Default("IMAGE_STORE", "data/") - a, err := image.New(store, -1) + a, err := image.New(ctx, store, -1) if err != nil { return err } diff --git a/favicon/android-chrome-192x192.png b/favicon/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..16b457ea8d6f5555128da6f1a25a3a377be2a650 GIT binary patch literal 6623 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 literal 0 HcmV?d00001 diff --git a/favicon/android-chrome-512x512.png b/favicon/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..d701c0d50243feeb87b73a978635e5a98983a041 GIT binary patch literal 23751 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 V6`7u;?1jMRxP|SpN;9wc{{Z;5Dk=Z~ literal 0 HcmV?d00001 diff --git a/favicon/apple-touch-icon.png b/favicon/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..44b11b867a4f6322df469c66a9738c2f1671b328 GIT binary patch literal 5762 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 be0vWX8%b}RfAa;qw~V8$uBTR|VvqPg?daZ_ literal 0 HcmV?d00001 diff --git a/favicon/favicon-16x16.png b/favicon/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..a64441e8c1fe1d2b5b486df6f855ea5fef26700c GIT binary patch literal 472 zcmV;}0Vn>6P)Nkld+6;`0(p9A;)*$)T&Yq); zjQ^hknO97-RGN|XfDPE65Fo(B@qZ};BZB~UZl5Jk2rT~L!w0Zh0RaJsp8x;mqX03A=KK^6D6)X_fF#TaTS)GF20CS)LpBdN~{{H<7H-wFig+Y*y7ta6r{ta#e z%vxqMoVfdp;m;q00X$rs3>NyD#2aw${WlZ?kp08L!pxv7#Es7da~STu|BA-|7N7xK zqj6z-wSyQRm}IJ{+(3>|jO1uKd;LzrnNw%xPn$9ktUW6?pTWq) zEY4I*X)&qh5p=+rGiO-;a_~DbF*EVN4gb%O*WTP{cm3K`u#l#fHbYfy!-4;d|EIvz z{QLXw3-gbU`%Fwse&cf#VFz5hyAEhTAi5zdmMvk}x_J{=*xT2SAtEXU!=C^D8P=L= zD~FKefPn{XSOz4LE{ri{Uy%=I-v2=G zkHOht)~5Yf9dIbqx8OemQ$Mn8RCNF-AQ=7?+D+d)0ec8!_!j~_+Xs?V@QYy(vv6d% z`urn#zK814k>qE1d161qgH20dfl}l!VK7zyJKj z>i`*X5e6?iGwM44lm=eE|H$z9>o>d(5C!_4mz#?=4j9lx2#SJjhfguQ|A;>g;BurO zKQDtfFls1B0~!q5fev{0@iSQgAAK2uT@KYIR(;ln5L5}^Pe4}+Yf82KSEDAK^e)0Y_DlNkbn{5%ZyCVJ$D z0H_>TyZZ>)*-!{r4g|Z}GJL*IL3Ipj_k)^NWC3972GrmnI~U+f13!NLX81s$mgMH- z0M-$lv~j@p!>1V@zj%!|VA$DM8RGn1Da(eqYCGwAyEciITcVlnlb=Pzn>r7VfgtD5?#RbjIUMfmkR8Y z%%aRj{JMc%lQf4Jn`XmQq4@7at|#BmKdhS={xjH--5bJXKPW3RG8|%O`R!*hdHW}r ZG5`Z=0zWZtQ)K`E002ovPDHLkV1f}mh{XT^ literal 0 HcmV?d00001 diff --git a/favicon/favicon.ico b/favicon/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..0a456a6bc4ca7bc9f68e9da34fced01ab14c30a7 GIT binary patch literal 15406 zcmeHOTWl0n7#^Y~_@Ke4(FdcAF$SN&D2O3O;Q>i#OF$DPL@ol|qA>w922?H@Nl3&8 ziO~S%DpAU%<=P7rcDLP@?OsYRJJZYV^aiESmX;REZrNpj|9{|Yr)4`kI~R(vC;9fA zopb*G`_4Ht=ggcr!*S!d$G8a-IE+)c%*Q!yD#vjtDfj+Qe1_w85JZ^P|deKCZB{b(N=(Z1t)5K7J*fpaGh z#0BMbVi_glt;xM;z=MEpwjl$XeU zxPGDXg1k!=?a6m+9`K!afK+T~`&Mr2p650t9#uh(df&9+es1|8o~xC!}ZE zPp4*ZyY(oMed7qkA@>feD7t1rBuR8~(OjWa2T4-hmysR^^caz2giU_+=HZ`6!QtPJ@i z-^4MJmUN4C1@)nsAPxoo)r@=j_fFWdorf(ubOL>lFXk8dSF7Q#svCNJ4Y}Bo{6oHy z<*yZc6XQ(Smhv5l4bfNXKn*H!;2mkmmb@Lod$s@yhR^_Pqd_|en<*RHh0 zy=NHdUP6AHY$<5vr~WU<*{!+%3(;2Z^>?GY1Fl>WHGypP)L$|-;74ow)3rnQ)lGdx_W}KXC(IQlx*D969V$3=Ke1& z)4qz8W3ke6Um`7J%lxpII7Ynx&aln6_v|zH3}Pg|^bCX?Bk|L5ER&A-CEa4*O2FsV zyYcGTP*V>3c5ahE>3C&Odzkr=e4=k9?s$13@6L(m`^O)?fwv~TA%W8I%Aocm@q8w8 z%;WJq;jbzGP^@)*#DLG-_C*Wk$M`8N@*XS8r+}C=PwOPOM9VEfs9h()qEdK&v2}cU zhHVY58?__uvbBzf9TPWcNV8biP5Zd)Nv1DRoSI=>igpn;HjZ{oTIOU}S0>WU^3yE# zTs>6`SLAjZZjFkL0p^v^cki<-`=M7meR0tMP==V=`VC#NlI7v&H!BRXorsWR@Lad zb{XW)JLjEOM@@f|zXtM->`Z!n!hvf^Y;9~*^*7Wct)14}q;<9XYkQ-qKN1d0&xeOd{pnj0Y4e=~NTj;8*Y2ptLY^lM-DrF8=(uydcPZH9j0<}a3Nx;B;8lPQm`_Zn}B zw61KXepZf+;y4D8Oo?@W&b0a}M>D>!3vx3Q7AaN3-XU<84B`A``uVDLqGYZ z{avk%wT7NMbS{$5z8lw>{ITm-w%s!@UaTl;X{NG6!2 zKN$^r%8u!efB&ziO_Q-Tr~RY2U%A6nusWKhU##_lnJ`0t)}a9O-ws1)ARPC7aJ+ZK zT91VWA`;jBW1?Z}&!4V#z}8&?{C=Qbalg4%&CD)<`x1zQxE6k0s$IXuo+p2QBu^6u z<1;!Y-*PT_8s7;y*!!VGajM0-1^ghmFO=0@f#Oa?qo|=_motV19Hf7E-`&0(p_Yq2T-uQhk$j#mhE0!*R zWs5$M(sV459qtS1XFMz>4YL=H{B3}my2#4}1n&Xli706~UyuVc-g_suk7OpM^N;+WR*4OXJTQzI{Od#&xJ)@LX-+U2n>5 zD18}ykua3# zIS2Q^Mm%TMuU!R{uB&!7Gzp&AH-L|B4LGj8y5v