mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-29 05:56:38 +08:00
61 lines
1.4 KiB
Go
61 lines
1.4 KiB
Go
// Copyright 2026 Arctel.net
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package cmd
|
|
|
|
import (
|
|
"Wavelet/pkg/buildinfo"
|
|
"fmt"
|
|
"runtime"
|
|
"strings"
|
|
)
|
|
|
|
type startupState struct {
|
|
mode string
|
|
listensForHTTP bool
|
|
env string
|
|
addr string
|
|
}
|
|
|
|
func printStartupBanner(state startupState) {
|
|
fmt.Println(formatStartupBanner(state))
|
|
}
|
|
|
|
func formatStartupBanner(state startupState) string {
|
|
env := state.env
|
|
if env == "" {
|
|
env = "production"
|
|
}
|
|
addr := state.addr
|
|
if addr == "" {
|
|
addr = "127.0.0.1:3000"
|
|
}
|
|
|
|
lines := []string{
|
|
"",
|
|
" ____ ________ ",
|
|
" / __ \\____ ___ ____ / ____/ /___ _________ ",
|
|
" / / / / __ \\/ _ \\/ __ \\/ /_ / / __ `/ ___/ _ \\",
|
|
"/ /_/ / /_/ / __/ / / / __/ / / /_/ / / / __/",
|
|
"\\____/ .___/\\___/_/ /_/_/ /_/\\__,_/_/ \\___/ ",
|
|
" /_/ ",
|
|
fmt.Sprintf(" OpenFlare %s", buildinfo.Version),
|
|
"",
|
|
fmt.Sprintf(" Environment: %s", env),
|
|
fmt.Sprintf(" Runtime: %s/%s (%s)", runtime.GOOS, runtime.GOARCH, runtime.Version()),
|
|
fmt.Sprintf(" Build time: %s", buildTime()),
|
|
}
|
|
if state.listensForHTTP {
|
|
lines = append(lines, fmt.Sprintf(" Listening: http://%s", addr))
|
|
}
|
|
lines = append(lines, fmt.Sprintf(" Mode: %s", state.mode), "")
|
|
return strings.Join(lines, "\n")
|
|
}
|
|
|
|
func buildTime() string {
|
|
if buildinfo.BuildTime == "" {
|
|
return "development build"
|
|
}
|
|
return buildinfo.BuildTime
|
|
}
|