Add configuration parsing

This commit is contained in:
raylu 2010-10-13 20:09:48 -04:00
parent 091c6f9558
commit 9a9c640b91
4 changed files with 59 additions and 7 deletions

1
.gitignore vendored
View File

@ -5,3 +5,4 @@ _test/
*.swp
*~
*.out
rbot.conf

View File

@ -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

7
rbot.conf.example Normal file
View File

@ -0,0 +1,7 @@
[DEFAULT]
server: irc.rizon.net
nick: rbot
user: rbot
ssl: false
[#raylu]

49
rbot.go
View File

@ -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++
}
}
}