diff options
author | Runxi Yu <me@runxiyu.org> | 2025-04-05 18:37:55 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-04-05 18:37:55 +0800 |
commit | 4836dd8b0be10b461b93d711bb2cf78d186210d1 (patch) | |
tree | 3c84ec801c234c9bc1dfe1062e3a32710ae3e254 | |
parent | Separate code/README rendering and unsafe to their own packages (diff) | |
download | forge-4836dd8b0be10b461b93d711bb2cf78d186210d1.tar.gz forge-4836dd8b0be10b461b93d711bb2cf78d186210d1.tar.zst forge-4836dd8b0be10b461b93d711bb2cf78d186210d1.zip |
Use log/slog instead of clog
-rw-r--r-- | git_hooks_handle_linux.go | 4 | ||||
-rw-r--r-- | git_hooks_handle_other.go | 4 | ||||
-rw-r--r-- | http_server.go | 4 | ||||
-rw-r--r-- | http_template.go | 5 | ||||
-rw-r--r-- | irc.go | 12 | ||||
-rw-r--r-- | main.go | 80 | ||||
-rw-r--r-- | ssh_server.go | 7 |
7 files changed, 68 insertions, 48 deletions
diff --git a/git_hooks_handle_linux.go b/git_hooks_handle_linux.go index 3c556c3..440bd46 100644 --- a/git_hooks_handle_linux.go +++ b/git_hooks_handle_linux.go @@ -12,6 +12,7 @@ import ( "errors" "fmt" "io" + "log/slog" "net" "os" "path/filepath" @@ -24,7 +25,6 @@ import ( "github.com/jackc/pgx/v5" "go.lindenii.runxiyu.org/forge/misc" "go.lindenii.runxiyu.org/lindenii-common/ansiec" - "go.lindenii.runxiyu.org/lindenii-common/clog" ) var ( @@ -253,7 +253,7 @@ func hooksHandler(conn net.Conn) { select { case ircSendBuffered <- "PRIVMSG #chat :New merge request at " + mergeRequestWebURL: default: - clog.Error("IRC SendQ exceeded") + slog.Error("IRC SendQ exceeded") } } else { // Existing contrib branch var existingMRUser int diff --git a/git_hooks_handle_other.go b/git_hooks_handle_other.go index 89a4193..d0c7088 100644 --- a/git_hooks_handle_other.go +++ b/git_hooks_handle_other.go @@ -12,6 +12,7 @@ import ( "errors" "fmt" "io" + "log/slog" "net" "path/filepath" "strconv" @@ -22,7 +23,6 @@ import ( "github.com/jackc/pgx/v5" "go.lindenii.runxiyu.org/forge/misc" "go.lindenii.runxiyu.org/lindenii-common/ansiec" - "go.lindenii.runxiyu.org/lindenii-common/clog" ) var errGetFD = errors.New("unable to get file descriptor") @@ -231,7 +231,7 @@ func hooksHandler(conn net.Conn) { select { case ircSendBuffered <- "PRIVMSG #chat :New merge request at " + mergeRequestWebURL: default: - clog.Error("IRC SendQ exceeded") + slog.Error("IRC SendQ exceeded") } } else { // Existing contrib branch var existingMRUser int diff --git a/http_server.go b/http_server.go index 7268ad0..5d45d00 100644 --- a/http_server.go +++ b/http_server.go @@ -5,13 +5,13 @@ package main import ( "errors" + "log/slog" "net/http" "net/url" "strconv" "strings" "github.com/jackc/pgx/v5" - "go.lindenii.runxiyu.org/lindenii-common/clog" ) type forgeHTTPRouter struct{} @@ -32,7 +32,7 @@ func (router *forgeHTTPRouter) ServeHTTP(writer http.ResponseWriter, request *ht } else { remoteAddr = request.RemoteAddr } - clog.Info("Incoming HTTP: " + remoteAddr + " " + request.Method + " " + request.RequestURI) + slog.Info("incoming http", "addr", remoteAddr, "method", request.Method, "uri", request.RequestURI) var segments []string var err error diff --git a/http_template.go b/http_template.go index c1f5fc4..9aa15cb 100644 --- a/http_template.go +++ b/http_template.go @@ -4,9 +4,8 @@ package main import ( + "log/slog" "net/http" - - "go.lindenii.runxiyu.org/lindenii-common/clog" ) // renderTemplate abstracts out the annoyances of reporting template rendering @@ -14,6 +13,6 @@ import ( func renderTemplate(w http.ResponseWriter, templateName string, params map[string]any) { if err := templates.ExecuteTemplate(w, templateName, params); err != nil { http.Error(w, "error rendering template: "+err.Error(), http.StatusInternalServerError) - clog.Error(err.Error()) + slog.Error("error rendering template", "error", err.Error()) } } @@ -5,9 +5,9 @@ package main import ( "crypto/tls" + "log/slog" "net" - "go.lindenii.runxiyu.org/lindenii-common/clog" irc "go.lindenii.runxiyu.org/lindenii-irc" ) @@ -37,7 +37,7 @@ func ircBotSession() error { conn := irc.NewConn(underlyingConn) logAndWriteLn := func(s string) (n int, err error) { - clog.Debug("IRC tx: " + s) + slog.Debug("irc tx", "line", s) return conn.WriteString(s + "\r\n") } @@ -66,7 +66,7 @@ func ircBotSession() error { return } - clog.Debug("IRC rx: " + line) + slog.Debug("irc rx", "line", line) switch msg.Command { case "001": @@ -84,7 +84,7 @@ func ircBotSession() error { case "JOIN": c, ok := msg.Source.(irc.Client) if !ok { - clog.Error("IRC server told us a non-client is joining a channel...") + slog.Error("unable to convert source of JOIN to client") } if c.Nick != config.IRC.Nick { continue @@ -104,7 +104,7 @@ func ircBotSession() error { select { case ircSendBuffered <- line: default: - clog.Error("unable to requeue IRC message: " + line) + slog.Error("unable to requeue message", "line", line) } writeLoopAbort <- struct{}{} return err @@ -140,6 +140,6 @@ func ircBotLoop() { for { err := ircBotSession() - clog.Error("IRC error: " + err.Error()) + slog.Error("irc session error", "error", err) } } @@ -7,13 +7,13 @@ import ( "errors" "flag" "log" + "log/slog" "net" "net/http" + "os" "os/exec" "syscall" "time" - - "go.lindenii.runxiyu.org/lindenii-common/clog" ) func main() { @@ -25,16 +25,20 @@ func main() { flag.Parse() if err := loadConfig(*configPath); err != nil { - clog.Fatal(1, "Loading configuration: "+err.Error()) + slog.Error("loading configuration", "error", err) + os.Exit(1) } if err := deployHooks(); err != nil { - clog.Fatal(1, "Deploying hooks to filesystem: "+err.Error()) + slog.Error("deploying hooks", "error", err) + os.Exit(1) } if err := loadTemplates(); err != nil { - clog.Fatal(1, "Loading templates: "+err.Error()) + slog.Error("loading templates", "error", err) + os.Exit(1) } if err := deployGit2D(); err != nil { - clog.Fatal(1, "Deploying git2d: "+err.Error()) + slog.Error("deploying git2d", "error", err) + os.Exit(1) } // Launch Git2D @@ -51,20 +55,24 @@ func main() { { hooksListener, err := net.Listen("unix", config.Hooks.Socket) if errors.Is(err, syscall.EADDRINUSE) { - clog.Warn("Removing existing socket " + config.Hooks.Socket) + slog.Warn("removing existing socket", "path", config.Hooks.Socket) if err = syscall.Unlink(config.Hooks.Socket); err != nil { - clog.Fatal(1, "Removing existing socket: "+err.Error()) + slog.Error("removing existing socket", "path", config.Hooks.Socket, "error", err) + os.Exit(1) } if hooksListener, err = net.Listen("unix", config.Hooks.Socket); err != nil { - clog.Fatal(1, "Listening hooks: "+err.Error()) + slog.Error("listening hooks", "error", err) + os.Exit(1) } } else if err != nil { - clog.Fatal(1, "Listening hooks: "+err.Error()) + slog.Error("listening hooks", "error", err) + os.Exit(1) } - clog.Info("Listening hooks on unix " + config.Hooks.Socket) + slog.Info("listening hooks on unix", "path", config.Hooks.Socket) go func() { if err = serveGitHooks(hooksListener); err != nil { - clog.Fatal(1, "Serving hooks: "+err.Error()) + slog.Error("serving hooks", "error", err) + os.Exit(1) } }() } @@ -73,20 +81,24 @@ func main() { { lmtpListener, err := net.Listen("unix", config.LMTP.Socket) if errors.Is(err, syscall.EADDRINUSE) { - clog.Warn("Removing existing socket " + config.LMTP.Socket) + slog.Warn("removing existing socket", "path", config.LMTP.Socket) if err = syscall.Unlink(config.LMTP.Socket); err != nil { - clog.Fatal(1, "Removing existing socket: "+err.Error()) + slog.Error("removing existing socket", "path", config.LMTP.Socket, "error", err) + os.Exit(1) } if lmtpListener, err = net.Listen("unix", config.LMTP.Socket); err != nil { - clog.Fatal(1, "Listening LMTP: "+err.Error()) + slog.Error("listening LMTP", "error", err) + os.Exit(1) } } else if err != nil { - clog.Fatal(1, "Listening LMTP: "+err.Error()) + slog.Error("listening LMTP", "error", err) + os.Exit(1) } - clog.Info("Listening LMTP on unix " + config.LMTP.Socket) + slog.Info("listening LMTP on unix", "path", config.LMTP.Socket) go func() { if err = serveLMTP(lmtpListener); err != nil { - clog.Fatal(1, "Serving LMTP: "+err.Error()) + slog.Error("serving LMTP", "error", err) + os.Exit(1) } }() } @@ -95,20 +107,24 @@ func main() { { sshListener, err := net.Listen(config.SSH.Net, config.SSH.Addr) if errors.Is(err, syscall.EADDRINUSE) && config.SSH.Net == "unix" { - clog.Warn("Removing existing socket " + config.SSH.Addr) + slog.Warn("removing existing socket", "path", config.SSH.Addr) if err = syscall.Unlink(config.SSH.Addr); err != nil { - clog.Fatal(1, "Removing existing socket: "+err.Error()) + slog.Error("removing existing socket", "path", config.SSH.Addr, "error", err) + os.Exit(1) } if sshListener, err = net.Listen(config.SSH.Net, config.SSH.Addr); err != nil { - clog.Fatal(1, "Listening SSH: "+err.Error()) + slog.Error("listening SSH", "error", err) + os.Exit(1) } } else if err != nil { - clog.Fatal(1, "Listening SSH: "+err.Error()) + slog.Error("listening SSH", "error", err) + os.Exit(1) } - clog.Info("Listening SSH on " + config.SSH.Net + " " + config.SSH.Addr) + slog.Info("listening SSH on", "net", config.SSH.Net, "addr", config.SSH.Addr) go func() { if err = serveSSH(sshListener); err != nil { - clog.Fatal(1, "Serving SSH: "+err.Error()) + slog.Error("serving SSH", "error", err) + os.Exit(1) } }() } @@ -117,15 +133,18 @@ func main() { { httpListener, err := net.Listen(config.HTTP.Net, config.HTTP.Addr) if errors.Is(err, syscall.EADDRINUSE) && config.HTTP.Net == "unix" { - clog.Warn("Removing existing socket " + config.HTTP.Addr) + slog.Warn("removing existing socket", "path", config.HTTP.Addr) if err = syscall.Unlink(config.HTTP.Addr); err != nil { - clog.Fatal(1, "Removing existing socket: "+err.Error()) + slog.Error("removing existing socket", "path", config.HTTP.Addr, "error", err) + os.Exit(1) } if httpListener, err = net.Listen(config.HTTP.Net, config.HTTP.Addr); err != nil { - clog.Fatal(1, "Listening HTTP: "+err.Error()) + slog.Error("listening HTTP", "error", err) + os.Exit(1) } } else if err != nil { - clog.Fatal(1, "Listening HTTP: "+err.Error()) + slog.Error("listening HTTP", "error", err) + os.Exit(1) } server := http.Server{ Handler: &forgeHTTPRouter{}, @@ -133,10 +152,11 @@ func main() { WriteTimeout: time.Duration(config.HTTP.ReadTimeout) * time.Second, IdleTimeout: time.Duration(config.HTTP.ReadTimeout) * time.Second, } //exhaustruct:ignore - clog.Info("Listening HTTP on " + config.HTTP.Net + " " + config.HTTP.Addr) + slog.Info("listening HTTP on", "net", config.HTTP.Net, "addr", config.HTTP.Addr) go func() { if err = server.Serve(httpListener); err != nil && !errors.Is(err, http.ErrServerClosed) { - clog.Fatal(1, "Serving HTTP: "+err.Error()) + slog.Error("serving HTTP", "error", err) + os.Exit(1) } }() } diff --git a/ssh_server.go b/ssh_server.go index 1408a2a..345d47f 100644 --- a/ssh_server.go +++ b/ssh_server.go @@ -5,6 +5,7 @@ package main import ( "fmt" + "log/slog" "net" "os" "strings" @@ -12,7 +13,6 @@ import ( gliderSSH "github.com/gliderlabs/ssh" "go.lindenii.runxiyu.org/forge/misc" "go.lindenii.runxiyu.org/lindenii-common/ansiec" - "go.lindenii.runxiyu.org/lindenii-common/clog" goSSH "golang.org/x/crypto/ssh" ) @@ -51,7 +51,7 @@ func serveSSH(listener net.Listener) error { clientPubkeyStr = strings.TrimSuffix(misc.BytesToString(goSSH.MarshalAuthorizedKey(clientPubkey)), "\n") } - clog.Info("Incoming SSH: " + session.RemoteAddr().String() + " " + clientPubkeyStr + " " + session.RawCommand()) + slog.Info("incoming ssh", "addr", session.RemoteAddr().String(), "key", clientPubkeyStr, "command", session.RawCommand()) fmt.Fprintln(session.Stderr(), ansiec.Blue+"Lindenii Forge "+VERSION+", source at "+strings.TrimSuffix(config.HTTP.Root, "/")+"/-/source/"+ansiec.Reset+"\r") cmd := session.Command() @@ -94,7 +94,8 @@ func serveSSH(listener net.Listener) error { server.AddHostKey(hostKey) if err = server.Serve(listener); err != nil { - clog.Fatal(1, "Serving SSH: "+err.Error()) + slog.Error("error serving SSH", "error", err.Error()) + os.Exit(1) } return nil |