package main import ( "os" "log" "fmt" "net" "time" configo "github.com/distributedio/configo" _ "github.com/mattn/go-sqlite3" ) var dead = true type Config struct { Name string `cfg:"name; boddle; printableascii; IRC nick of bot"` Channels []string `cfg:"channels; required; printableascii; Channel list to join to"` Server string `cfg:"server; required; netaddr; Server name to connect to"` Database string `cfg:"database; ./boddle.db; path; Path to database"` } type bot struct { Conf Config conn net.Conn } func main() { LOG_init() var boddle bot if err := configo.Load("./boddle.toml", &boddle.Conf); err != nil { log.Fatal(err) } LOG_INFO.Println("bot started!") var botchan <-chan []byte var line []byte dead = true for { if dead { LOG_WARN.Println("died.") for { botchan = connect(boddle) if botchan != nil { break } time.Sleep(10 * time.Second) } LOG_INFO.Println("reconnected.") dead = false } line = <-botchan fmt.Fprintf(os.Stderr, string(line)) } }