mirror of https://github.com/fluffle/goirc
Add configuration parsing
This commit is contained in:
parent
091c6f9558
commit
9a9c640b91
|
@ -5,3 +5,4 @@ _test/
|
||||||
*.swp
|
*.swp
|
||||||
*~
|
*~
|
||||||
*.out
|
*.out
|
||||||
|
rbot.conf
|
||||||
|
|
9
Makefile
9
Makefile
|
@ -10,3 +10,12 @@ GOFILES=\
|
||||||
|
|
||||||
include $(GOROOT)/src/Make.cmd
|
include $(GOROOT)/src/Make.cmd
|
||||||
|
|
||||||
|
all: rbot.conf
|
||||||
|
|
||||||
|
rbot.conf: rbot.conf.example
|
||||||
|
@if [ -f $@ ] ; then \
|
||||||
|
echo "rbot.conf exists, but rbot.conf.example is newer." ; \
|
||||||
|
else \
|
||||||
|
echo cp $< $@ ; \
|
||||||
|
cp $< $@ ; \
|
||||||
|
fi
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
[DEFAULT]
|
||||||
|
server: irc.rizon.net
|
||||||
|
nick: rbot
|
||||||
|
user: rbot
|
||||||
|
ssl: false
|
||||||
|
|
||||||
|
[#raylu]
|
49
rbot.go
49
rbot.go
|
@ -3,17 +3,24 @@ package main
|
||||||
import (
|
import (
|
||||||
"irc"
|
"irc"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"github.com/kless/goconfig/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
var nick, server, user string
|
||||||
server := "irc.rizon.net"
|
var ssl bool
|
||||||
channel := "#vn-meta"
|
var channels []string
|
||||||
ssl := false
|
|
||||||
|
|
||||||
c := irc.New("raylu[BOT]", "rayluBOT", "rayluBOT")
|
func main() {
|
||||||
|
parseConfig("rbot.conf")
|
||||||
|
|
||||||
|
c := irc.New(nick, user, user)
|
||||||
c.AddHandler("connected",
|
c.AddHandler("connected",
|
||||||
func(conn *irc.Conn, line *irc.Line) {
|
func(conn *irc.Conn, line *irc.Line) {
|
||||||
conn.Join(channel)
|
fmt.Println("Connected!")
|
||||||
|
for _, c := range channels {
|
||||||
|
conn.Join(c)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
for {
|
for {
|
||||||
|
@ -22,9 +29,37 @@ func main() {
|
||||||
fmt.Printf("Connection error: %s\n", err)
|
fmt.Printf("Connection error: %s\n", err)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
fmt.Println("Connected!")
|
|
||||||
for err := range c.Err {
|
for err := range c.Err {
|
||||||
fmt.Printf("goirc error: %s\n", err)
|
fmt.Printf("goirc error: %s\n", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func parseConfig(confFile string) {
|
||||||
|
conf, err := config.ReadDefault(confFile)
|
||||||
|
if (err != nil) {
|
||||||
|
fmt.Printf("Config error: %s\n", err); os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
server, err = conf.String("DEFAULT", "server")
|
||||||
|
if err != nil { fmt.Printf("Config error: %s\n", err); os.Exit(1) }
|
||||||
|
|
||||||
|
nick, err = conf.String("DEFAULT", "nick")
|
||||||
|
if err != nil { fmt.Printf("Config error: %s\n", err); os.Exit(1) }
|
||||||
|
|
||||||
|
user, err = conf.String("DEFAULT", "user")
|
||||||
|
if err != nil { fmt.Printf("Config error: %s\n", err); os.Exit(1) }
|
||||||
|
|
||||||
|
ssl, err = conf.Bool("DEFAULT", "ssl")
|
||||||
|
if err != nil { fmt.Printf("Config error: %s\n", err); os.Exit(1) }
|
||||||
|
|
||||||
|
sections := conf.Sections()
|
||||||
|
channels = make([]string, len(sections)-1)
|
||||||
|
i := 0
|
||||||
|
for _, s := range sections {
|
||||||
|
if (s != "DEFAULT") {
|
||||||
|
channels[i] = s
|
||||||
|
i++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue