aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--git_hooks_handle_linux.go4
-rw-r--r--git_hooks_handle_other.go4
-rw-r--r--http_server.go4
-rw-r--r--http_template.go5
-rw-r--r--irc.go12
-rw-r--r--main.go80
-rw-r--r--ssh_server.go7
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())
}
}
diff --git a/irc.go b/irc.go
index 073bfad..868fc05 100644
--- a/irc.go
+++ b/irc.go
@@ -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)
}
}
diff --git a/main.go b/main.go
index 49164d2..de01417 100644
--- a/main.go
+++ b/main.go
@@ -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