From 009a6e397651a9540b6c6bb74ef2230eeda9b577 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sun, 17 Aug 2025 03:09:52 +0800 Subject: [PATCH] Some mass renaming --- forge.scfg | 2 +- forged/.golangci.yaml | 76 +++++++++++++++++++++++++++--------------------------- forged/internal/ansiec/colors.go => forged/internal/common/ansiec/colors.go | 0 forged/internal/ansiec/doc.go => forged/internal/common/ansiec/doc.go | 0 forged/internal/ansiec/reset.go => forged/internal/common/ansiec/reset.go | 0 forged/internal/ansiec/style.go => forged/internal/common/ansiec/style.go | 0 forged/internal/argon2id/argon2id.go => forged/internal/common/argon2id/argon2id.go | 0 forged/internal/bare/doc.go => forged/internal/common/bare/doc.go | 0 forged/internal/bare/errors.go => forged/internal/common/bare/errors.go | 0 forged/internal/bare/limit.go => forged/internal/common/bare/limit.go | 0 forged/internal/bare/marshal.go => forged/internal/common/bare/marshal.go | 0 forged/internal/bare/reader.go => forged/internal/common/bare/reader.go | 0 forged/internal/bare/unions.go => forged/internal/common/bare/unions.go | 0 forged/internal/bare/unmarshal.go => forged/internal/common/bare/unmarshal.go | 0 forged/internal/bare/varint.go => forged/internal/common/bare/varint.go | 0 forged/internal/bare/writer.go => forged/internal/common/bare/writer.go | 0 forged/internal/cmap/comparable_map.go => forged/internal/common/cmap/comparable_map.go | 0 forged/internal/cmap/map.go => forged/internal/common/cmap/map.go | 0 forged/internal/config/config.go | 43 +++++++++++++------------------------------ forged/internal/git2c/client.go => forged/internal/ipc/git2c/client.go | 0 forged/internal/git2c/cmd_index.go => forged/internal/ipc/git2c/cmd_index.go | 0 forged/internal/git2c/cmd_treeraw.go => forged/internal/ipc/git2c/cmd_treeraw.go | 0 forged/internal/git2c/doc.go => forged/internal/ipc/git2c/doc.go | 0 forged/internal/git2c/git_types.go => forged/internal/ipc/git2c/git_types.go | 0 forged/internal/git2c/perror.go => forged/internal/ipc/git2c/perror.go | 0 forged/internal/hooki/hooki.go => forged/internal/incoming/hooks/hooks.go | 21 +++++++++++---------- forged/internal/humanize/bytes.go => forged/internal/common/humanize/bytes.go | 0 forged/internal/incoming/ssh/ssh.go | 10 ++++++++++ forged/internal/incoming/web/web.go | 18 ++++++++++++++++++ forged/internal/irc/bot.go => forged/internal/ipc/irc/bot.go | 2 +- forged/internal/irc/conn.go => forged/internal/ipc/irc/conn.go | 2 +- forged/internal/irc/doc.go => forged/internal/ipc/irc/doc.go | 0 forged/internal/irc/errors.go => forged/internal/ipc/irc/errors.go | 0 forged/internal/irc/message.go => forged/internal/ipc/irc/message.go | 2 +- forged/internal/irc/source.go => forged/internal/ipc/irc/source.go | 2 +- forged/internal/lmtp/config.go => forged/internal/incoming/lmtp/config.go | 23 ++++++++++++----------- forged/internal/misc/back.go => forged/internal/common/misc/back.go | 0 forged/internal/misc/deploy.go => forged/internal/common/misc/deploy.go | 0 forged/internal/misc/iter.go => forged/internal/common/misc/iter.go | 0 forged/internal/misc/misc.go => forged/internal/common/misc/misc.go | 0 forged/internal/misc/panic.go => forged/internal/common/misc/panic.go | 0 forged/internal/misc/slices.go => forged/internal/common/misc/slices.go | 0 forged/internal/misc/trivial.go => forged/internal/common/misc/trivial.go | 0 forged/internal/misc/unsafe.go => forged/internal/common/misc/unsafe.go | 0 forged/internal/misc/url.go => forged/internal/common/misc/url.go | 0 forged/internal/misc/usock.go => forged/internal/common/misc/usock.go | 0 forged/internal/scfg/.golangci.yaml => forged/internal/common/scfg/.golangci.yaml | 0 forged/internal/scfg/reader.go => forged/internal/common/scfg/reader.go | 0 forged/internal/scfg/scfg.go => forged/internal/common/scfg/scfg.go | 0 forged/internal/scfg/struct.go => forged/internal/common/scfg/struct.go | 0 forged/internal/scfg/unmarshal.go => forged/internal/common/scfg/unmarshal.go | 0 forged/internal/scfg/writer.go => forged/internal/common/scfg/writer.go | 0 forged/internal/server/server.go | 32 +++++++++++++++++++++++--------- diff --git a/forge.scfg b/forge.scfg index 1c8eeb94ba2aa8fbb4d7abf1404a65f759b3ecbd..a8e74eddfb4b38d8a50c58bb76497898e7b2db81 100644 --- a/forge.scfg +++ b/forge.scfg @@ -1,4 +1,4 @@ -http { +web { # What network transport should we listen on? # Examples: tcp tcp4 tcp6 unix net tcp diff --git a/forged/.golangci.yaml b/forged/.golangci.yaml index e475c41fb3d27f98813a81ace2558839367e02e2..7bd6ec10537a0392af25dd5e67cf633a121a3e80 100644 --- a/forged/.golangci.yaml +++ b/forged/.golangci.yaml @@ -2,41 +2,41 @@ version: "2" linters: default: all - disable: - - depguard - - err113 # dynamically defined errors are fine for our purposes - - forcetypeassert # type assertion failures are usually programming errors - - gochecknoinits # we use inits sparingly for good reasons - - godox # they're just used as markers for where needs improvements - - ireturn # doesn't work well with how we use generics - - lll # long lines are acceptable - - mnd # it's a bit ridiculous to replace all of them - - nakedret # patterns should be consistent - - nonamedreturns # i like named returns - - wrapcheck # wrapping all errors is just not necessary - - varnamelen # "from" and "to" are very valid - - containedctx - - godot - - dogsled - - maintidx # e - - nestif # e - - gocognit # e - - gocyclo # e - - dupl # e - - cyclop # e - - goconst # e - - funlen # e - - wsl # e - - nlreturn # e - - unused # e - - exhaustruct # e - -linters-settings: - revive: - rules: - - name: error-strings - disabled: true - -issues: - max-issues-per-linter: 0 - max-same-issues: 0 +# disable: +# - depguard +# - err113 # dynamically defined errors are fine for our purposes +# - forcetypeassert # type assertion failures are usually programming errors +# - gochecknoinits # we use inits sparingly for good reasons +# - godox # they're just used as markers for where needs improvements +# - ireturn # doesn't work well with how we use generics +# - lll # long lines are acceptable +# - mnd # it's a bit ridiculous to replace all of them +# - nakedret # patterns should be consistent +# - nonamedreturns # i like named returns +# - wrapcheck # wrapping all errors is just not necessary +# - varnamelen # "from" and "to" are very valid +# - containedctx +# - godot +# - dogsled +# - maintidx # e +# - nestif # e +# - gocognit # e +# - gocyclo # e +# - dupl # e +# - cyclop # e +# - goconst # e +# - funlen # e +# - wsl # e +# - nlreturn # e +# - unused # e +# - exhaustruct # e +# +# linters-settings: +# revive: +# rules: +# - name: error-strings +# disabled: true +# +# issues: +# max-issues-per-linter: 0 +# max-same-issues: 0 diff --git a/forged/internal/ansiec/colors.go b/forged/internal/common/ansiec/colors.go rename from forged/internal/ansiec/colors.go rename to forged/internal/common/ansiec/colors.go diff --git a/forged/internal/ansiec/doc.go b/forged/internal/common/ansiec/doc.go rename from forged/internal/ansiec/doc.go rename to forged/internal/common/ansiec/doc.go diff --git a/forged/internal/ansiec/reset.go b/forged/internal/common/ansiec/reset.go rename from forged/internal/ansiec/reset.go rename to forged/internal/common/ansiec/reset.go diff --git a/forged/internal/ansiec/style.go b/forged/internal/common/ansiec/style.go rename from forged/internal/ansiec/style.go rename to forged/internal/common/ansiec/style.go diff --git a/forged/internal/argon2id/argon2id.go b/forged/internal/common/argon2id/argon2id.go rename from forged/internal/argon2id/argon2id.go rename to forged/internal/common/argon2id/argon2id.go diff --git a/forged/internal/bare/doc.go b/forged/internal/common/bare/doc.go rename from forged/internal/bare/doc.go rename to forged/internal/common/bare/doc.go diff --git a/forged/internal/bare/errors.go b/forged/internal/common/bare/errors.go rename from forged/internal/bare/errors.go rename to forged/internal/common/bare/errors.go diff --git a/forged/internal/bare/limit.go b/forged/internal/common/bare/limit.go rename from forged/internal/bare/limit.go rename to forged/internal/common/bare/limit.go diff --git a/forged/internal/bare/marshal.go b/forged/internal/common/bare/marshal.go rename from forged/internal/bare/marshal.go rename to forged/internal/common/bare/marshal.go diff --git a/forged/internal/bare/reader.go b/forged/internal/common/bare/reader.go rename from forged/internal/bare/reader.go rename to forged/internal/common/bare/reader.go diff --git a/forged/internal/bare/unions.go b/forged/internal/common/bare/unions.go rename from forged/internal/bare/unions.go rename to forged/internal/common/bare/unions.go diff --git a/forged/internal/bare/unmarshal.go b/forged/internal/common/bare/unmarshal.go rename from forged/internal/bare/unmarshal.go rename to forged/internal/common/bare/unmarshal.go diff --git a/forged/internal/bare/varint.go b/forged/internal/common/bare/varint.go rename from forged/internal/bare/varint.go rename to forged/internal/common/bare/varint.go diff --git a/forged/internal/bare/writer.go b/forged/internal/common/bare/writer.go rename from forged/internal/bare/writer.go rename to forged/internal/common/bare/writer.go diff --git a/forged/internal/cmap/comparable_map.go b/forged/internal/common/cmap/comparable_map.go rename from forged/internal/cmap/comparable_map.go rename to forged/internal/common/cmap/comparable_map.go diff --git a/forged/internal/cmap/map.go b/forged/internal/common/cmap/map.go rename from forged/internal/cmap/map.go rename to forged/internal/common/cmap/map.go diff --git a/forged/internal/config/config.go b/forged/internal/config/config.go index 0166390d1bb332ea87ec0451c6eb8b101cab991e..dd0a9833cb11deadd3b57890a7da328b96321a33 100644 --- a/forged/internal/config/config.go +++ b/forged/internal/config/config.go @@ -5,47 +5,30 @@ "bufio" "log/slog" "os" + "go.lindenii.runxiyu.org/forge/forged/internal/common/scfg" "go.lindenii.runxiyu.org/forge/forged/internal/database" - "go.lindenii.runxiyu.org/forge/forged/internal/hooki" - "go.lindenii.runxiyu.org/forge/forged/internal/irc" - "go.lindenii.runxiyu.org/forge/forged/internal/scfg" + "go.lindenii.runxiyu.org/forge/forged/internal/incoming/hooks" + "go.lindenii.runxiyu.org/forge/forged/internal/incoming/lmtp" + "go.lindenii.runxiyu.org/forge/forged/internal/incoming/ssh" + "go.lindenii.runxiyu.org/forge/forged/internal/incoming/web" + "go.lindenii.runxiyu.org/forge/forged/internal/ipc/irc" ) type Config struct { - HTTP struct { - Net string `scfg:"net"` - Addr string `scfg:"addr"` - CookieExpiry int `scfg:"cookie_expiry"` - Root string `scfg:"root"` - ReadTimeout uint32 `scfg:"read_timeout"` - WriteTimeout uint32 `scfg:"write_timeout"` - IdleTimeout uint32 `scfg:"idle_timeout"` - ReverseProxy bool `scfg:"reverse_proxy"` - } `scfg:"http"` - Hooks hooki.Config `scfg:"hooks"` - LMTP struct { - Socket string `scfg:"socket"` - Domain string `scfg:"domain"` - MaxSize int64 `scfg:"max_size"` - WriteTimeout uint32 `scfg:"write_timeout"` - ReadTimeout uint32 `scfg:"read_timeout"` - } `scfg:"lmtp"` - Git struct { + DB database.Config `scfg:"db"` + Web web.Config `scfg:"web"` + Hooks hooks.Config `scfg:"hooks"` + LMTP lmtp.Config `scfg:"lmtp"` + SSH ssh.Config `scfg:"ssh"` + IRC irc.Config `scfg:"irc"` + Git struct { RepoDir string `scfg:"repo_dir"` Socket string `scfg:"socket"` DaemonPath string `scfg:"daemon_path"` } `scfg:"git"` - SSH struct { - Net string `scfg:"net"` - Addr string `scfg:"addr"` - Key string `scfg:"key"` - Root string `scfg:"root"` - } `scfg:"ssh"` - IRC irc.Config `scfg:"irc"` General struct { Title string `scfg:"title"` } `scfg:"general"` - DB database.Config `scfg:"db"` Pprof struct { Net string `scfg:"net"` Addr string `scfg:"addr"` diff --git a/forged/internal/git2c/client.go b/forged/internal/ipc/git2c/client.go rename from forged/internal/git2c/client.go rename to forged/internal/ipc/git2c/client.go diff --git a/forged/internal/git2c/cmd_index.go b/forged/internal/ipc/git2c/cmd_index.go rename from forged/internal/git2c/cmd_index.go rename to forged/internal/ipc/git2c/cmd_index.go diff --git a/forged/internal/git2c/cmd_treeraw.go b/forged/internal/ipc/git2c/cmd_treeraw.go rename from forged/internal/git2c/cmd_treeraw.go rename to forged/internal/ipc/git2c/cmd_treeraw.go diff --git a/forged/internal/git2c/doc.go b/forged/internal/ipc/git2c/doc.go rename from forged/internal/git2c/doc.go rename to forged/internal/ipc/git2c/doc.go diff --git a/forged/internal/git2c/git_types.go b/forged/internal/ipc/git2c/git_types.go rename from forged/internal/git2c/git_types.go rename to forged/internal/ipc/git2c/git_types.go diff --git a/forged/internal/git2c/perror.go b/forged/internal/ipc/git2c/perror.go rename from forged/internal/git2c/perror.go rename to forged/internal/ipc/git2c/perror.go diff --git a/forged/internal/hooki/hooki.go b/forged/internal/incoming/hooks/hooks.go rename from forged/internal/hooki/hooki.go rename to forged/internal/incoming/hooks/hooks.go index 8e75bae724a5aa9595971a3b3256baf7bc8d504a..64e1cbec1a80d5306107383b3a0e53d964769c3d 100644 --- a/forged/internal/hooki/hooki.go +++ b/forged/internal/incoming/hooks/hooks.go @@ -1,15 +1,15 @@ -package hooki +package hooks import ( "fmt" "net" "github.com/gliderlabs/ssh" - "go.lindenii.runxiyu.org/forge/forged/internal/cmap" - "go.lindenii.runxiyu.org/forge/forged/internal/misc" + "go.lindenii.runxiyu.org/forge/forged/internal/common/cmap" + "go.lindenii.runxiyu.org/forge/forged/internal/common/misc" ) -type Pool struct { +type Server struct { hookMap cmap.Map[string, hookInfo] socketPath string executablesPath string @@ -33,13 +33,14 @@ repoName string contribReq string } -func New(config Config) (pool Pool) { - pool.socketPath = config.Socket - pool.executablesPath = config.Execs - return +func New(config Config) (pool *Server) { + return &Server{ + socketPath: config.Socket, + executablesPath: config.Execs, + } } -func (pool *Pool) Run() error { +func (pool *Server) Run() error { listener, _, err := misc.ListenUnixSocket(pool.socketPath) if err != nil { return fmt.Errorf("listen unix socket for hooks: %w", err) @@ -55,6 +56,6 @@ go pool.handleConn(conn) } } -func (pool *Pool) handleConn(conn net.Conn) { +func (pool *Server) handleConn(conn net.Conn) { panic("TODO: handle hook connection") } diff --git a/forged/internal/humanize/bytes.go b/forged/internal/common/humanize/bytes.go rename from forged/internal/humanize/bytes.go rename to forged/internal/common/humanize/bytes.go diff --git a/forged/internal/incoming/ssh/ssh.go b/forged/internal/incoming/ssh/ssh.go new file mode 100644 index 0000000000000000000000000000000000000000..74bd99b259acd8dcb85b90e3c46676cb76d98248 --- /dev/null +++ b/forged/internal/incoming/ssh/ssh.go @@ -0,0 +1,10 @@ +package ssh + +type Server struct{} + +type Config struct { + Net string `scfg:"net"` + Addr string `scfg:"addr"` + Key string `scfg:"key"` + Root string `scfg:"root"` +} diff --git a/forged/internal/incoming/web/web.go b/forged/internal/incoming/web/web.go new file mode 100644 index 0000000000000000000000000000000000000000..e338ef28291975ae3d5b5068a8daa54b022264f4 --- /dev/null +++ b/forged/internal/incoming/web/web.go @@ -0,0 +1,18 @@ +package web + +import "net/http" + +type Server struct { + httpServer *http.Server +} + +type Config struct { + Net string `scfg:"net"` + Addr string `scfg:"addr"` + CookieExpiry int `scfg:"cookie_expiry"` + Root string `scfg:"root"` + ReadTimeout uint32 `scfg:"read_timeout"` + WriteTimeout uint32 `scfg:"write_timeout"` + IdleTimeout uint32 `scfg:"idle_timeout"` + ReverseProxy bool `scfg:"reverse_proxy"` +} diff --git a/forged/internal/irc/bot.go b/forged/internal/ipc/irc/bot.go rename from forged/internal/irc/bot.go rename to forged/internal/ipc/irc/bot.go index 3ebac89b26dca4d0ce5ecbc83ad981ce7bbaa5a4..611391380ca627919b3629d3b7d62c96a44e2079 100644 --- a/forged/internal/irc/bot.go +++ b/forged/internal/ipc/irc/bot.go @@ -8,7 +8,7 @@ "crypto/tls" "log/slog" "net" - "go.lindenii.runxiyu.org/forge/forged/internal/misc" + "go.lindenii.runxiyu.org/forge/forged/internal/common/misc" ) // Config contains IRC connection and identity settings for the bot. diff --git a/forged/internal/irc/conn.go b/forged/internal/ipc/irc/conn.go rename from forged/internal/irc/conn.go rename to forged/internal/ipc/irc/conn.go index b975b720b0bbaa922f63035738438c98ab73d0d1..15294eed322c90eed725b415bad43eefa0c641c8 100644 --- a/forged/internal/irc/conn.go +++ b/forged/internal/ipc/irc/conn.go @@ -5,7 +5,7 @@ "bufio" "net" "slices" - "go.lindenii.runxiyu.org/forge/forged/internal/misc" + "go.lindenii.runxiyu.org/forge/forged/internal/common/misc" ) type Conn struct { diff --git a/forged/internal/irc/doc.go b/forged/internal/ipc/irc/doc.go rename from forged/internal/irc/doc.go rename to forged/internal/ipc/irc/doc.go diff --git a/forged/internal/irc/errors.go b/forged/internal/ipc/irc/errors.go rename from forged/internal/irc/errors.go rename to forged/internal/ipc/irc/errors.go diff --git a/forged/internal/irc/message.go b/forged/internal/ipc/irc/message.go rename from forged/internal/irc/message.go rename to forged/internal/ipc/irc/message.go index 84b6867586a59982362514368541ab82a7b810d6..5843226905e7b1207365ccd7909028149bcf509a 100644 --- a/forged/internal/irc/message.go +++ b/forged/internal/ipc/irc/message.go @@ -7,7 +7,7 @@ import ( "bytes" - "go.lindenii.runxiyu.org/forge/forged/internal/misc" + "go.lindenii.runxiyu.org/forge/forged/internal/common/misc" ) type Message struct { diff --git a/forged/internal/irc/source.go b/forged/internal/ipc/irc/source.go rename from forged/internal/irc/source.go rename to forged/internal/ipc/irc/source.go index d955f45652cde1dbf74bb22385793f517c08e9f1..c6baf75adb4c1eca78971a26649d26e042059053 100644 --- a/forged/internal/irc/source.go +++ b/forged/internal/ipc/irc/source.go @@ -6,7 +6,7 @@ import ( "bytes" - "go.lindenii.runxiyu.org/forge/forged/internal/misc" + "go.lindenii.runxiyu.org/forge/forged/internal/common/misc" ) type Source interface { diff --git a/forged/internal/lmtp/config.go b/forged/internal/incoming/lmtp/config.go rename from forged/internal/lmtp/config.go rename to forged/internal/incoming/lmtp/config.go index ce22740e38aca4e4e25c9517258b183ce63fe890..767f0e46533fa5f78399fb0c9d288fceb8043d5b 100644 --- a/forged/internal/lmtp/config.go +++ b/forged/internal/incoming/lmtp/config.go @@ -4,10 +4,10 @@ import ( "fmt" "net" - "go.lindenii.runxiyu.org/forge/forged/internal/misc" + "go.lindenii.runxiyu.org/forge/forged/internal/common/misc" ) -type Pool struct { +type Server struct { socket string domain string maxSize int64 @@ -23,16 +23,17 @@ WriteTimeout uint32 `scfg:"write_timeout"` ReadTimeout uint32 `scfg:"read_timeout"` } -func New(config Config) (pool Pool) { - pool.socket = config.Socket - pool.domain = config.Domain - pool.maxSize = config.MaxSize - pool.writeTimeout = config.WriteTimeout - pool.readTimeout = config.ReadTimeout - return pool +func New(config Config) (pool *Server) { + return &Server{ + socket: config.Socket, + domain: config.Domain, + maxSize: config.MaxSize, + writeTimeout: config.WriteTimeout, + readTimeout: config.ReadTimeout, + } } -func (pool *Pool) Run() error { +func (pool *Server) Run() error { listener, _, err := misc.ListenUnixSocket(pool.socket) if err != nil { return fmt.Errorf("listen unix socket for LMTP: %w", err) @@ -48,6 +49,6 @@ go pool.handleConn(conn) } } -func (pool *Pool) handleConn(conn net.Conn) { +func (pool *Server) handleConn(conn net.Conn) { panic("TODO: handle LMTP connection") } diff --git a/forged/internal/misc/back.go b/forged/internal/common/misc/back.go rename from forged/internal/misc/back.go rename to forged/internal/common/misc/back.go diff --git a/forged/internal/misc/deploy.go b/forged/internal/common/misc/deploy.go rename from forged/internal/misc/deploy.go rename to forged/internal/common/misc/deploy.go diff --git a/forged/internal/misc/iter.go b/forged/internal/common/misc/iter.go rename from forged/internal/misc/iter.go rename to forged/internal/common/misc/iter.go diff --git a/forged/internal/misc/misc.go b/forged/internal/common/misc/misc.go rename from forged/internal/misc/misc.go rename to forged/internal/common/misc/misc.go diff --git a/forged/internal/misc/panic.go b/forged/internal/common/misc/panic.go rename from forged/internal/misc/panic.go rename to forged/internal/common/misc/panic.go diff --git a/forged/internal/misc/slices.go b/forged/internal/common/misc/slices.go rename from forged/internal/misc/slices.go rename to forged/internal/common/misc/slices.go diff --git a/forged/internal/misc/trivial.go b/forged/internal/common/misc/trivial.go rename from forged/internal/misc/trivial.go rename to forged/internal/common/misc/trivial.go diff --git a/forged/internal/misc/unsafe.go b/forged/internal/common/misc/unsafe.go rename from forged/internal/misc/unsafe.go rename to forged/internal/common/misc/unsafe.go diff --git a/forged/internal/misc/url.go b/forged/internal/common/misc/url.go rename from forged/internal/misc/url.go rename to forged/internal/common/misc/url.go diff --git a/forged/internal/misc/usock.go b/forged/internal/common/misc/usock.go rename from forged/internal/misc/usock.go rename to forged/internal/common/misc/usock.go diff --git a/forged/internal/scfg/.golangci.yaml b/forged/internal/common/scfg/.golangci.yaml rename from forged/internal/scfg/.golangci.yaml rename to forged/internal/common/scfg/.golangci.yaml diff --git a/forged/internal/scfg/reader.go b/forged/internal/common/scfg/reader.go rename from forged/internal/scfg/reader.go rename to forged/internal/common/scfg/reader.go diff --git a/forged/internal/scfg/scfg.go b/forged/internal/common/scfg/scfg.go rename from forged/internal/scfg/scfg.go rename to forged/internal/common/scfg/scfg.go diff --git a/forged/internal/scfg/struct.go b/forged/internal/common/scfg/struct.go rename from forged/internal/scfg/struct.go rename to forged/internal/common/scfg/struct.go diff --git a/forged/internal/scfg/unmarshal.go b/forged/internal/common/scfg/unmarshal.go rename from forged/internal/scfg/unmarshal.go rename to forged/internal/common/scfg/unmarshal.go diff --git a/forged/internal/scfg/writer.go b/forged/internal/common/scfg/writer.go rename from forged/internal/scfg/writer.go rename to forged/internal/common/scfg/writer.go diff --git a/forged/internal/server/server.go b/forged/internal/server/server.go index 4ed9b44204a190c21ae10098b0908a87f37dce0e..1f2cce6342c3a9667d65ccf4309b0f5395a722ba 100644 --- a/forged/internal/server/server.go +++ b/forged/internal/server/server.go @@ -7,16 +7,26 @@ "log" "go.lindenii.runxiyu.org/forge/forged/internal/config" "go.lindenii.runxiyu.org/forge/forged/internal/database" - "go.lindenii.runxiyu.org/forge/forged/internal/hooki" - "go.lindenii.runxiyu.org/forge/forged/internal/lmtp" + "go.lindenii.runxiyu.org/forge/forged/internal/incoming/hooks" + "go.lindenii.runxiyu.org/forge/forged/internal/incoming/lmtp" + "go.lindenii.runxiyu.org/forge/forged/internal/incoming/ssh" + "go.lindenii.runxiyu.org/forge/forged/internal/incoming/web" ) type Server struct { config config.Config - database database.Database - hookPool hooki.Pool - lmtpPool lmtp.Pool + database database.Database + hookServer *hooks.Server + lmtpServer *lmtp.Server + webServer *web.Server + sshServer *ssh.Server + + globalData struct { + SSHPubkey string + SSHFingerprint string + Version string + } } func New(ctx context.Context, configPath string) (server *Server, err error) { @@ -33,6 +43,12 @@ if err != nil { return server, fmt.Errorf("open database: %w", err) } + server.hookServer = hooks.New(server.config.Hooks) + + server.lmtpServer = lmtp.New(server.config.LMTP) + + // TODO: Add HTTP and SSH servers + return server, nil } @@ -41,15 +57,13 @@ // TODO: Not running git2d because it should be run separately. // This needs to be documented somewhere, hence a TODO here for now. go func() { - s.hookPool = hooki.New(s.config.Hooks) - if err := s.hookPool.Run(); err != nil { + if err := s.hookServer.Run(); err != nil { log.Fatalf("run hook pool: %v", err) } }() go func() { - s.lmtpPool = lmtp.New(s.config.LMTP) - if err := s.lmtpPool.Run(); err != nil { + if err := s.lmtpServer.Run(); err != nil { log.Fatalf("run LMTP pool: %v", err) } }() -- 2.48.1