summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2025-08-03 17:02:03 +0500
committerilotterytea <iltsu@alright.party>2025-08-03 17:02:03 +0500
commitf70cb8879086b8e3769553375ef817adb1d7f2f0 (patch)
tree457abaf13134aeb86c5a37fad16b57a89aa81257
parent40eb34ed8c932ae00f3a6cc97ff34ba59ab8066e (diff)
feat: configuration fileHEADmaster
-rw-r--r--cmd/ircd/main.go11
-rw-r--r--go.mod2
-rw-r--r--go.sum2
-rw-r--r--internal/server.go8
4 files changed, 21 insertions, 2 deletions
diff --git a/cmd/ircd/main.go b/cmd/ircd/main.go
index ee96ab7..13da2be 100644
--- a/cmd/ircd/main.go
+++ b/cmd/ircd/main.go
@@ -3,12 +3,21 @@ package main
import (
ircd "ilotterytea/tinyircd/internal"
"log"
+ "os"
+
+ "github.com/go-ini/ini"
)
func main() {
+ cfg, err := ini.Load("tinyircd.ini")
+ if err != nil {
+ log.Fatalf("Failed to read configuration file: %v\n", err)
+ os.Exit(1)
+ }
+
log.Println("Starting TinyIRCd...")
- server, err := ircd.NewIRCServer(":6667")
+ server, err := ircd.NewIRCServer(cfg)
if err != nil {
panic(err)
}
diff --git a/go.mod b/go.mod
index ba33a19..cfe8b9e 100644
--- a/go.mod
+++ b/go.mod
@@ -1,3 +1,5 @@
module ilotterytea/tinyircd
go 1.24.3
+
+require github.com/go-ini/ini v1.67.0 // indirect
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..0e8d04e
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,2 @@
+github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A=
+github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
diff --git a/internal/server.go b/internal/server.go
index 667aa97..f317fd6 100644
--- a/internal/server.go
+++ b/internal/server.go
@@ -3,11 +3,14 @@ package ircd
import (
"log"
"net"
+
+ "github.com/go-ini/ini"
)
type Server struct {
clients []*Client
listener net.Listener
+ cfg *ini.File
}
func (s *Server) Run() {
@@ -29,7 +32,9 @@ func (s *Server) Close() {
s.listener.Close()
}
-func NewIRCServer(address string) (*Server, error) {
+func NewIRCServer(cfg *ini.File) (*Server, error) {
+ address := cfg.Section("address").Key("host").String()
+
listener, err := net.Listen("tcp", address)
if err != nil {
return nil, err
@@ -40,6 +45,7 @@ func NewIRCServer(address string) (*Server, error) {
s := Server{
clients: []*Client{},
listener: listener,
+ cfg: cfg,
}
return &s, nil