v0.5.0-rc5: check release

This commit is contained in:
yusing
2024-09-19 20:40:03 +08:00
parent be7a766cb2
commit 4a2d42bfa9
68 changed files with 1971 additions and 1107 deletions

View File

@@ -18,6 +18,7 @@ import (
"github.com/yusing/go-proxy/common"
"github.com/yusing/go-proxy/config"
"github.com/yusing/go-proxy/docker"
"github.com/yusing/go-proxy/docker/idlewatcher"
E "github.com/yusing/go-proxy/error"
R "github.com/yusing/go-proxy/route"
"github.com/yusing/go-proxy/server"
@@ -53,37 +54,40 @@ func main() {
// exit if only validate config
if args.Command == common.CommandValidate {
var err E.NestedError
data, err := E.Check(os.ReadFile(common.ConfigPath))
if err.HasError() {
l.WithError(err).Fatalf("config error")
data, err := os.ReadFile(common.ConfigPath)
if err == nil {
err = config.Validate(data).Error()
}
if err = config.Validate(data); err.HasError() {
l.WithError(err).Fatalf("config error")
if err != nil {
l.Fatal("config error: ", err)
}
l.Printf("config OK")
return
}
cfg, err := config.New()
if err.HasError() {
l.Fatalf("config error: %s", err)
cfg, err := config.Load()
if err.IsFatal() {
l.Fatal(err)
}
if args.Command == common.CommandListConfigs {
yml, err := E.Check(json.Marshal(cfg.Value()))
if err.HasError() {
panic(err)
}
rawLogger := log.New(os.Stdout, "", 0)
rawLogger.Printf("%s", yml) // raw output for convenience using "jq"
printJSON(cfg.Value())
return
}
onShutdown.Add(func() {
docker.CloseAllClients()
cfg.Dispose()
})
cfg.StartProxyProviders()
if args.Command == common.CommandListRoutes {
printJSON(cfg.RoutesByAlias())
return
}
if err.HasError() {
l.Warn(err)
}
onShutdown.Add(docker.CloseAllClients)
onShutdown.Add(cfg.Dispose)
sig := make(chan os.Signal, 1)
signal.Notify(sig, syscall.SIGINT)
@@ -109,8 +113,9 @@ func main() {
onShutdown.Add(certRenewalCancel)
}
for name, expiry := range autocert.GetExpiries() {
l.Infof("certificate %q: expire on %s", name, expiry)
for _, expiry := range autocert.GetExpiries() {
l.Infof("certificate expire on %s", expiry)
break
}
} else {
l.Info("autocert not configured")
@@ -137,6 +142,9 @@ func main() {
onShutdown.Add(proxyServer.Stop)
onShutdown.Add(apiServer.Stop)
go idlewatcher.Start()
onShutdown.Add(idlewatcher.Stop)
// wait for signal
<-sig
@@ -164,3 +172,12 @@ func main() {
logrus.Info("timeout waiting for shutdown")
}
}
func printJSON(obj any) {
j, err := E.Check(json.Marshal(obj))
if err.HasError() {
logrus.Fatal(err)
}
rawLogger := log.New(os.Stdout, "", 0)
rawLogger.Printf("%s", j) // raw output for convenience using "jq"
}