github.com/vmware/transport-go@v1.3.4/plank/pkg/server/banner.go (about) 1 package server 2 3 import ( 4 "fmt" 5 imgcolor "image/color" 6 "os" 7 "runtime" 8 9 "github.com/eliukblau/pixterm/pkg/ansimage" 10 "github.com/fatih/color" 11 "github.com/vmware/transport-go/plank/utils" 12 ) 13 14 // printBanner prints out banner as well as brief server config 15 func (ps *platformServer) printBanner() { 16 // print out ascii art only if output is stdout 17 if ps.out == os.Stdout { 18 fs, err := logoFs.Open("logo.png") 19 if err != nil { 20 goto bannerBody 21 } 22 defer fs.Close() 23 _, _ = fmt.Fprintf(ps.out, "\n\n") 24 img, err := ansimage.NewScaledFromReader( 25 fs, 26 40, 27 80, 28 imgcolor.Transparent, 29 ansimage.ScaleModeResize, 30 ansimage.NoDithering) 31 if err != nil { 32 panic(err) 33 } 34 // print out logo in ASCII art 35 img.SetMaxProcs(runtime.NumCPU()) 36 img.Draw() 37 } 38 39 // display title and config summary 40 bannerBody: 41 _, _ = fmt.Fprintln(ps.out) 42 color.Set(color.BgHiWhite, color.FgHiBlack, color.Bold) 43 _, _ = fmt.Fprintf(ps.out, " P L A N K ") 44 color.Unset() 45 _, _ = fmt.Fprintln(ps.out) 46 utils.InfoFprintf(ps.out, "Host\t\t\t") 47 _, _ = fmt.Fprintln(ps.out, ps.serverConfig.Host) 48 utils.InfoFprintf(ps.out, "Port\t\t\t") 49 _, _ = fmt.Fprintln(ps.out, ps.serverConfig.Port) 50 51 if ps.serverConfig.FabricConfig != nil { 52 utils.InfoFprintf(ps.out, "Fabric endpoint\t\t") 53 if ps.serverConfig.FabricConfig.UseTCP { 54 _, _ = fmt.Fprintln(ps.out, fmt.Sprintf(":%d (TCP)", ps.serverConfig.FabricConfig.TCPPort)) 55 return 56 } 57 _, _ = fmt.Fprintln(ps.out, ps.serverConfig.FabricConfig.FabricEndpoint) 58 } 59 60 if len(ps.serverConfig.StaticDir) > 0 { 61 utils.InfoFprintf(ps.out, "Static endpoints\t") 62 for i, dir := range ps.serverConfig.StaticDir { 63 _, p := utils.DeriveStaticURIFromPath(dir) 64 _, _ = fmt.Fprint(ps.out, p) 65 if i < len(ps.serverConfig.StaticDir)-1 { 66 _, _ = fmt.Fprint(ps.out, ", ") 67 } else { 68 _, _ = fmt.Fprint(ps.out, "\n") 69 } 70 } 71 } 72 73 if ps.serverConfig.SpaConfig != nil { 74 utils.InfoFprintf(ps.out, "SPA endpoint\t\t") 75 _, _ = fmt.Fprintln(ps.out, ps.serverConfig.SpaConfig.BaseUri) 76 utils.InfoFprintf(ps.out, "SPA static assets\t") 77 if len(ps.serverConfig.SpaConfig.StaticAssets) == 0 { 78 _, _ = fmt.Fprint(ps.out, "-") 79 } 80 for idx, asset := range ps.serverConfig.SpaConfig.StaticAssets { 81 _, uri := utils.DeriveStaticURIFromPath(asset) 82 _, _ = fmt.Fprint(ps.out, utils.SanitizeUrl(uri, false)) 83 if idx < len(ps.serverConfig.SpaConfig.StaticAssets)-1 { 84 _, _ = fmt.Fprint(ps.out, ", ") 85 } 86 } 87 _, _ = fmt.Fprintln(ps.out) 88 } 89 90 utils.InfoFprintf(ps.out, "Health endpoint\t\t") 91 _, _ = fmt.Fprintln(ps.out, "/health") 92 93 if ps.serverConfig.EnablePrometheus { 94 utils.InfoFprintf(ps.out, "Prometheus endpoint\t") 95 _, _ = fmt.Fprintln(ps.out, "/prometheus") 96 } 97 98 _, _ = fmt.Fprintln(ps.out) 99 100 }