mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-01 14:46:36 +08:00
2f60329886
代码质量全量清理,零行为变化:golangci 扩展集 13 类 linter(gosec/modernize/perfsprint/canonicalheader/usestdlibvars/wastedassign/intrange/errorlint/forcetypeassert/recvcheck/exhaustive/unparam)全量修复,测试代码质量(testifylint/thelper/usetesting)25→0,frpc 进程生命周期真 bug(进程组击杀)、全仓 go test -race 6 类数据竞争(含 1 个生产竞争)、SPDX license 头补齐 131 文件、前端测试套件 next-intl 迁移后 44 失败→全绿、过期 swagger 文档重新生成、pnpm-workspace 构建审批。 Experiments: #2-#17, #18, #20, #21, #23 Metric: total_issues 108 → 8 (-92.6%)
69 lines
1.8 KiB
Go
69 lines
1.8 KiB
Go
// Copyright 2026 Arctel.net
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package cmd
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"runtime"
|
|
"strings"
|
|
|
|
"github.com/Rain-kl/Wavelet/internal/buildinfo"
|
|
"github.com/Rain-kl/Wavelet/internal/infra/config"
|
|
"github.com/Rain-kl/Wavelet/internal/infra/persistence/migrator"
|
|
)
|
|
|
|
type startupState struct {
|
|
mode string
|
|
relationalDB migrator.Report
|
|
clickHouseDB migrator.Report
|
|
listensForHTTP bool
|
|
}
|
|
|
|
func printStartupBanner(state startupState) {
|
|
log.Print(formatStartupBanner(state))
|
|
}
|
|
|
|
func formatStartupBanner(state startupState) string {
|
|
lines := []string{
|
|
"",
|
|
" ____ ________ ",
|
|
" / __ \\____ ___ ____ / ____/ /___ _________ ",
|
|
" / / / / __ \\/ _ \\/ __ \\/ /_ / / __ `/ ___/ _ \\",
|
|
"/ /_/ / /_/ / __/ / / / __/ / / /_/ / / / __/",
|
|
"\\____/ .___/\\___/_/ /_/_/ /_/\\__,_/_/ \\___/ ",
|
|
" /_/ ",
|
|
" OpenFlare " + buildinfo.Version,
|
|
"",
|
|
" Environment: " + config.Config.App.Env,
|
|
fmt.Sprintf(" Runtime: %s/%s (%s)", runtime.GOOS, runtime.GOARCH, runtime.Version()),
|
|
" Build time: " + buildTime(),
|
|
" Database: " + formatMigration(state.relationalDB),
|
|
" Analytics: " + formatMigration(state.clickHouseDB),
|
|
}
|
|
if state.listensForHTTP {
|
|
lines = append(lines, " Listening: http://"+config.Config.App.Addr)
|
|
}
|
|
lines = append(lines, " Mode: "+state.mode, "")
|
|
return strings.Join(lines, "\n")
|
|
}
|
|
|
|
func buildTime() string {
|
|
if buildinfo.BuildTime == "" {
|
|
return "development build"
|
|
}
|
|
return buildinfo.BuildTime
|
|
}
|
|
|
|
func formatMigration(report migrator.Report) string {
|
|
if !report.Enabled {
|
|
return "disabled"
|
|
}
|
|
state := "up to date"
|
|
if report.Applied {
|
|
state = "upgraded"
|
|
}
|
|
return fmt.Sprintf("%s (version %d, %s)", report.Backend, report.Version, state)
|
|
}
|