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
|
||||
*~
|
||||
*.out
|
||||
rbot.conf
|
||||
|
|
9
Makefile
9
Makefile
|
@ -10,3 +10,12 @@ GOFILES=\
|
|||
|
||||
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 (
|
||||
"irc"
|
||||
"fmt"
|
||||
"os"
|
||||
"github.com/kless/goconfig/config"
|
||||
)
|
||||
|
||||
func main() {
|
||||
server := "irc.rizon.net"
|
||||
channel := "#vn-meta"
|
||||
ssl := false
|
||||
var nick, server, user string
|
||||
var ssl bool
|
||||
var channels []string
|
||||
|
||||
c := irc.New("raylu[BOT]", "rayluBOT", "rayluBOT")
|
||||
func main() {
|
||||
parseConfig("rbot.conf")
|
||||
|
||||
c := irc.New(nick, user, user)
|
||||
c.AddHandler("connected",
|
||||
func(conn *irc.Conn, line *irc.Line) {
|
||||
conn.Join(channel)
|
||||
fmt.Println("Connected!")
|
||||
for _, c := range channels {
|
||||
conn.Join(c)
|
||||
}
|
||||
})
|
||||
|
||||
for {
|
||||
|
@ -22,9 +29,37 @@ func main() {
|
|||
fmt.Printf("Connection error: %s\n", err)
|
||||
break
|
||||
}
|
||||
fmt.Println("Connected!")
|
||||
for err := range c.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