aboutsummaryrefslogtreecommitdiff
path: root/forged/internal
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-08-17 03:09:52 +0800
committerRunxi Yu <me@runxiyu.org>2025-08-17 03:09:52 +0800
commit009a6e397651a9540b6c6bb74ef2230eeda9b577 (patch)
tree0a808670d95aba5804a73a558cc335a49d230aa6 /forged/internal
parentRemove HTML templates from main server (diff)
downloadforge-009a6e397651a9540b6c6bb74ef2230eeda9b577.tar.gz
forge-009a6e397651a9540b6c6bb74ef2230eeda9b577.tar.zst
forge-009a6e397651a9540b6c6bb74ef2230eeda9b577.zip
Some mass renaming
Diffstat (limited to 'forged/internal')
-rw-r--r--forged/internal/common/ansiec/colors.go (renamed from forged/internal/ansiec/colors.go)0
-rw-r--r--forged/internal/common/ansiec/doc.go (renamed from forged/internal/ansiec/doc.go)0
-rw-r--r--forged/internal/common/ansiec/reset.go (renamed from forged/internal/ansiec/reset.go)0
-rw-r--r--forged/internal/common/ansiec/style.go (renamed from forged/internal/ansiec/style.go)0
-rw-r--r--forged/internal/common/argon2id/argon2id.go (renamed from forged/internal/argon2id/argon2id.go)0
-rw-r--r--forged/internal/common/bare/doc.go (renamed from forged/internal/bare/doc.go)0
-rw-r--r--forged/internal/common/bare/errors.go (renamed from forged/internal/bare/errors.go)0
-rw-r--r--forged/internal/common/bare/limit.go (renamed from forged/internal/bare/limit.go)0
-rw-r--r--forged/internal/common/bare/marshal.go (renamed from forged/internal/bare/marshal.go)0
-rw-r--r--forged/internal/common/bare/reader.go (renamed from forged/internal/bare/reader.go)0
-rw-r--r--forged/internal/common/bare/unions.go (renamed from forged/internal/bare/unions.go)0
-rw-r--r--forged/internal/common/bare/unmarshal.go (renamed from forged/internal/bare/unmarshal.go)0
-rw-r--r--forged/internal/common/bare/varint.go (renamed from forged/internal/bare/varint.go)0
-rw-r--r--forged/internal/common/bare/writer.go (renamed from forged/internal/bare/writer.go)0
-rw-r--r--forged/internal/common/cmap/comparable_map.go (renamed from forged/internal/cmap/comparable_map.go)0
-rw-r--r--forged/internal/common/cmap/map.go (renamed from forged/internal/cmap/map.go)0
-rw-r--r--forged/internal/common/humanize/bytes.go (renamed from forged/internal/humanize/bytes.go)0
-rw-r--r--forged/internal/common/misc/back.go (renamed from forged/internal/misc/back.go)0
-rw-r--r--forged/internal/common/misc/deploy.go (renamed from forged/internal/misc/deploy.go)0
-rw-r--r--forged/internal/common/misc/iter.go (renamed from forged/internal/misc/iter.go)0
-rw-r--r--forged/internal/common/misc/misc.go (renamed from forged/internal/misc/misc.go)0
-rw-r--r--forged/internal/common/misc/panic.go (renamed from forged/internal/misc/panic.go)0
-rw-r--r--forged/internal/common/misc/slices.go (renamed from forged/internal/misc/slices.go)0
-rw-r--r--forged/internal/common/misc/trivial.go (renamed from forged/internal/misc/trivial.go)0
-rw-r--r--forged/internal/common/misc/unsafe.go (renamed from forged/internal/misc/unsafe.go)0
-rw-r--r--forged/internal/common/misc/url.go (renamed from forged/internal/misc/url.go)0
-rw-r--r--forged/internal/common/misc/usock.go (renamed from forged/internal/misc/usock.go)0
-rw-r--r--forged/internal/common/scfg/.golangci.yaml (renamed from forged/internal/scfg/.golangci.yaml)0
-rw-r--r--forged/internal/common/scfg/reader.go (renamed from forged/internal/scfg/reader.go)0
-rw-r--r--forged/internal/common/scfg/scfg.go (renamed from forged/internal/scfg/scfg.go)0
-rw-r--r--forged/internal/common/scfg/struct.go (renamed from forged/internal/scfg/struct.go)0
-rw-r--r--forged/internal/common/scfg/unmarshal.go (renamed from forged/internal/scfg/unmarshal.go)0
-rw-r--r--forged/internal/common/scfg/writer.go (renamed from forged/internal/scfg/writer.go)0
-rw-r--r--forged/internal/config/config.go43
-rw-r--r--forged/internal/incoming/hooks/hooks.go (renamed from forged/internal/hooki/hooki.go)21
-rw-r--r--forged/internal/incoming/lmtp/config.go (renamed from forged/internal/lmtp/config.go)23
-rw-r--r--forged/internal/incoming/ssh/ssh.go10
-rw-r--r--forged/internal/incoming/web/web.go18
-rw-r--r--forged/internal/ipc/git2c/client.go (renamed from forged/internal/git2c/client.go)0
-rw-r--r--forged/internal/ipc/git2c/cmd_index.go (renamed from forged/internal/git2c/cmd_index.go)0
-rw-r--r--forged/internal/ipc/git2c/cmd_treeraw.go (renamed from forged/internal/git2c/cmd_treeraw.go)0
-rw-r--r--forged/internal/ipc/git2c/doc.go (renamed from forged/internal/git2c/doc.go)0
-rw-r--r--forged/internal/ipc/git2c/git_types.go (renamed from forged/internal/git2c/git_types.go)0
-rw-r--r--forged/internal/ipc/git2c/perror.go (renamed from forged/internal/git2c/perror.go)0
-rw-r--r--forged/internal/ipc/irc/bot.go (renamed from forged/internal/irc/bot.go)2
-rw-r--r--forged/internal/ipc/irc/conn.go (renamed from forged/internal/irc/conn.go)2
-rw-r--r--forged/internal/ipc/irc/doc.go (renamed from forged/internal/irc/doc.go)0
-rw-r--r--forged/internal/ipc/irc/errors.go (renamed from forged/internal/irc/errors.go)0
-rw-r--r--forged/internal/ipc/irc/message.go (renamed from forged/internal/irc/message.go)2
-rw-r--r--forged/internal/ipc/irc/source.go (renamed from forged/internal/irc/source.go)2
-rw-r--r--forged/internal/server/server.go32
51 files changed, 91 insertions, 64 deletions
diff --git a/forged/internal/ansiec/colors.go b/forged/internal/common/ansiec/colors.go
index 8e5f54b..8e5f54b 100644
--- a/forged/internal/ansiec/colors.go
+++ b/forged/internal/common/ansiec/colors.go
diff --git a/forged/internal/ansiec/doc.go b/forged/internal/common/ansiec/doc.go
index 542c564..542c564 100644
--- a/forged/internal/ansiec/doc.go
+++ b/forged/internal/common/ansiec/doc.go
diff --git a/forged/internal/ansiec/reset.go b/forged/internal/common/ansiec/reset.go
index c5b6ba6..c5b6ba6 100644
--- a/forged/internal/ansiec/reset.go
+++ b/forged/internal/common/ansiec/reset.go
diff --git a/forged/internal/ansiec/style.go b/forged/internal/common/ansiec/style.go
index dd37344..dd37344 100644
--- a/forged/internal/ansiec/style.go
+++ b/forged/internal/common/ansiec/style.go
diff --git a/forged/internal/argon2id/argon2id.go b/forged/internal/common/argon2id/argon2id.go
index 88df8f6..88df8f6 100644
--- a/forged/internal/argon2id/argon2id.go
+++ b/forged/internal/common/argon2id/argon2id.go
diff --git a/forged/internal/bare/doc.go b/forged/internal/common/bare/doc.go
index 2f12f55..2f12f55 100644
--- a/forged/internal/bare/doc.go
+++ b/forged/internal/common/bare/doc.go
diff --git a/forged/internal/bare/errors.go b/forged/internal/common/bare/errors.go
index 39c951a..39c951a 100644
--- a/forged/internal/bare/errors.go
+++ b/forged/internal/common/bare/errors.go
diff --git a/forged/internal/bare/limit.go b/forged/internal/common/bare/limit.go
index 212bc05..212bc05 100644
--- a/forged/internal/bare/limit.go
+++ b/forged/internal/common/bare/limit.go
diff --git a/forged/internal/bare/marshal.go b/forged/internal/common/bare/marshal.go
index 1ce942d..1ce942d 100644
--- a/forged/internal/bare/marshal.go
+++ b/forged/internal/common/bare/marshal.go
diff --git a/forged/internal/bare/reader.go b/forged/internal/common/bare/reader.go
index 58325e3..58325e3 100644
--- a/forged/internal/bare/reader.go
+++ b/forged/internal/common/bare/reader.go
diff --git a/forged/internal/bare/unions.go b/forged/internal/common/bare/unions.go
index 0270a5f..0270a5f 100644
--- a/forged/internal/bare/unions.go
+++ b/forged/internal/common/bare/unions.go
diff --git a/forged/internal/bare/unmarshal.go b/forged/internal/common/bare/unmarshal.go
index d55f32c..d55f32c 100644
--- a/forged/internal/bare/unmarshal.go
+++ b/forged/internal/common/bare/unmarshal.go
diff --git a/forged/internal/bare/varint.go b/forged/internal/common/bare/varint.go
index a185ac8..a185ac8 100644
--- a/forged/internal/bare/varint.go
+++ b/forged/internal/common/bare/varint.go
diff --git a/forged/internal/bare/writer.go b/forged/internal/common/bare/writer.go
index bada045..bada045 100644
--- a/forged/internal/bare/writer.go
+++ b/forged/internal/common/bare/writer.go
diff --git a/forged/internal/cmap/comparable_map.go b/forged/internal/common/cmap/comparable_map.go
index cd9d4ce..cd9d4ce 100644
--- a/forged/internal/cmap/comparable_map.go
+++ b/forged/internal/common/cmap/comparable_map.go
diff --git a/forged/internal/cmap/map.go b/forged/internal/common/cmap/map.go
index 4f43627..4f43627 100644
--- a/forged/internal/cmap/map.go
+++ b/forged/internal/common/cmap/map.go
diff --git a/forged/internal/humanize/bytes.go b/forged/internal/common/humanize/bytes.go
index bea504c..bea504c 100644
--- a/forged/internal/humanize/bytes.go
+++ b/forged/internal/common/humanize/bytes.go
diff --git a/forged/internal/misc/back.go b/forged/internal/common/misc/back.go
index 5351359..5351359 100644
--- a/forged/internal/misc/back.go
+++ b/forged/internal/common/misc/back.go
diff --git a/forged/internal/misc/deploy.go b/forged/internal/common/misc/deploy.go
index 3ee5f92..3ee5f92 100644
--- a/forged/internal/misc/deploy.go
+++ b/forged/internal/common/misc/deploy.go
diff --git a/forged/internal/misc/iter.go b/forged/internal/common/misc/iter.go
index 61a96f4..61a96f4 100644
--- a/forged/internal/misc/iter.go
+++ b/forged/internal/common/misc/iter.go
diff --git a/forged/internal/misc/misc.go b/forged/internal/common/misc/misc.go
index e9e10ab..e9e10ab 100644
--- a/forged/internal/misc/misc.go
+++ b/forged/internal/common/misc/misc.go
diff --git a/forged/internal/misc/panic.go b/forged/internal/common/misc/panic.go
index 34c49c5..34c49c5 100644
--- a/forged/internal/misc/panic.go
+++ b/forged/internal/common/misc/panic.go
diff --git a/forged/internal/misc/slices.go b/forged/internal/common/misc/slices.go
index 3ad0211..3ad0211 100644
--- a/forged/internal/misc/slices.go
+++ b/forged/internal/common/misc/slices.go
diff --git a/forged/internal/misc/trivial.go b/forged/internal/common/misc/trivial.go
index e59c17e..e59c17e 100644
--- a/forged/internal/misc/trivial.go
+++ b/forged/internal/common/misc/trivial.go
diff --git a/forged/internal/misc/unsafe.go b/forged/internal/common/misc/unsafe.go
index 6c2192f..6c2192f 100644
--- a/forged/internal/misc/unsafe.go
+++ b/forged/internal/common/misc/unsafe.go
diff --git a/forged/internal/misc/url.go b/forged/internal/common/misc/url.go
index 346ff76..346ff76 100644
--- a/forged/internal/misc/url.go
+++ b/forged/internal/common/misc/url.go
diff --git a/forged/internal/misc/usock.go b/forged/internal/common/misc/usock.go
index 357fa43..357fa43 100644
--- a/forged/internal/misc/usock.go
+++ b/forged/internal/common/misc/usock.go
diff --git a/forged/internal/scfg/.golangci.yaml b/forged/internal/common/scfg/.golangci.yaml
index 59f1970..59f1970 100644
--- a/forged/internal/scfg/.golangci.yaml
+++ b/forged/internal/common/scfg/.golangci.yaml
diff --git a/forged/internal/scfg/reader.go b/forged/internal/common/scfg/reader.go
index 6a2bedc..6a2bedc 100644
--- a/forged/internal/scfg/reader.go
+++ b/forged/internal/common/scfg/reader.go
diff --git a/forged/internal/scfg/scfg.go b/forged/internal/common/scfg/scfg.go
index 4533e63..4533e63 100644
--- a/forged/internal/scfg/scfg.go
+++ b/forged/internal/common/scfg/scfg.go
diff --git a/forged/internal/scfg/struct.go b/forged/internal/common/scfg/struct.go
index 98ec943..98ec943 100644
--- a/forged/internal/scfg/struct.go
+++ b/forged/internal/common/scfg/struct.go
diff --git a/forged/internal/scfg/unmarshal.go b/forged/internal/common/scfg/unmarshal.go
index 8befc10..8befc10 100644
--- a/forged/internal/scfg/unmarshal.go
+++ b/forged/internal/common/scfg/unmarshal.go
diff --git a/forged/internal/scfg/writer.go b/forged/internal/common/scfg/writer.go
index 02a07fe..02a07fe 100644
--- a/forged/internal/scfg/writer.go
+++ b/forged/internal/common/scfg/writer.go
diff --git a/forged/internal/config/config.go b/forged/internal/config/config.go
index 0166390..dd0a983 100644
--- a/forged/internal/config/config.go
+++ b/forged/internal/config/config.go
@@ -5,47 +5,30 @@ import (
"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/hooki/hooki.go b/forged/internal/incoming/hooks/hooks.go
index 8e75bae..64e1cbe 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 @@ type hookInfo struct {
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 @@ func (pool *Pool) Run() error {
}
}
-func (pool *Pool) handleConn(conn net.Conn) {
+func (pool *Server) handleConn(conn net.Conn) {
panic("TODO: handle hook connection")
}
diff --git a/forged/internal/lmtp/config.go b/forged/internal/incoming/lmtp/config.go
index ce22740..767f0e4 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 @@ type Config struct {
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 @@ func (pool *Pool) Run() error {
}
}
-func (pool *Pool) handleConn(conn net.Conn) {
+func (pool *Server) handleConn(conn net.Conn) {
panic("TODO: handle LMTP connection")
}
diff --git a/forged/internal/incoming/ssh/ssh.go b/forged/internal/incoming/ssh/ssh.go
new file mode 100644
index 0000000..74bd99b
--- /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 0000000..e338ef2
--- /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/git2c/client.go b/forged/internal/ipc/git2c/client.go
index d8dc2ea..d8dc2ea 100644
--- a/forged/internal/git2c/client.go
+++ b/forged/internal/ipc/git2c/client.go
diff --git a/forged/internal/git2c/cmd_index.go b/forged/internal/ipc/git2c/cmd_index.go
index 8862b2c..8862b2c 100644
--- a/forged/internal/git2c/cmd_index.go
+++ b/forged/internal/ipc/git2c/cmd_index.go
diff --git a/forged/internal/git2c/cmd_treeraw.go b/forged/internal/ipc/git2c/cmd_treeraw.go
index 492cb84..492cb84 100644
--- a/forged/internal/git2c/cmd_treeraw.go
+++ b/forged/internal/ipc/git2c/cmd_treeraw.go
diff --git a/forged/internal/git2c/doc.go b/forged/internal/ipc/git2c/doc.go
index e14dae0..e14dae0 100644
--- a/forged/internal/git2c/doc.go
+++ b/forged/internal/ipc/git2c/doc.go
diff --git a/forged/internal/git2c/git_types.go b/forged/internal/ipc/git2c/git_types.go
index bf13f05..bf13f05 100644
--- a/forged/internal/git2c/git_types.go
+++ b/forged/internal/ipc/git2c/git_types.go
diff --git a/forged/internal/git2c/perror.go b/forged/internal/ipc/git2c/perror.go
index 96bffd5..96bffd5 100644
--- a/forged/internal/git2c/perror.go
+++ b/forged/internal/ipc/git2c/perror.go
diff --git a/forged/internal/irc/bot.go b/forged/internal/ipc/irc/bot.go
index 3ebac89..6113913 100644
--- a/forged/internal/irc/bot.go
+++ b/forged/internal/ipc/irc/bot.go
@@ -8,7 +8,7 @@ import (
"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
index b975b72..15294ee 100644
--- a/forged/internal/irc/conn.go
+++ b/forged/internal/ipc/irc/conn.go
@@ -5,7 +5,7 @@ import (
"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
index dcfca82..dcfca82 100644
--- a/forged/internal/irc/doc.go
+++ b/forged/internal/ipc/irc/doc.go
diff --git a/forged/internal/irc/errors.go b/forged/internal/ipc/irc/errors.go
index 3506c70..3506c70 100644
--- a/forged/internal/irc/errors.go
+++ b/forged/internal/ipc/irc/errors.go
diff --git a/forged/internal/irc/message.go b/forged/internal/ipc/irc/message.go
index 84b6867..5843226 100644
--- a/forged/internal/irc/message.go
+++ b/forged/internal/ipc/irc/message.go
@@ -7,7 +7,7 @@ package irc
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
index d955f45..c6baf75 100644
--- a/forged/internal/irc/source.go
+++ b/forged/internal/ipc/irc/source.go
@@ -6,7 +6,7 @@ package irc
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/server/server.go b/forged/internal/server/server.go
index 4ed9b44..1f2cce6 100644
--- a/forged/internal/server/server.go
+++ b/forged/internal/server/server.go
@@ -7,16 +7,26 @@ import (
"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 @@ func New(ctx context.Context, configPath string) (server *Server, err error) {
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 @@ func (s *Server) Run() error {
// 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)
}
}()