Rssmon2/main.go

60 lines
963 B
Go
Executable File

package main
import (
"local/rssmon2/config"
"local/rssmon2/exchange"
"local/rssmon2/monitor"
"local/rssmon2/server"
"local/rssmon2/store"
"log"
)
func main() {
core()
}
func core() {
var err error
config := config.New()
ex := exchange.New(nil, nil, nil, config.TorAddr)
var mon *monitor.Monitor
if mon, err = monitor.New(ex.UpdateFeed); err != nil {
panic(err)
} else if err = mon.Start(); err != nil {
panic(err)
}
defer mon.Stop()
ex.Mon = mon
var sclient store.Client
if sclient, err = store.NewBolt(config.DBPath); err != nil {
panic(err)
}
defer sclient.Close()
ex.SClient = sclient
var srv *server.Server
if srv, err = server.New(config.Port,
ex.NewFeed,
ex.GetFeedRSS,
ex.GetFeedItem,
ex.GetFeedTagRSS,
ex.ListTag,
); err != nil {
panic(err)
}
ex.Srv = srv
if err := ex.LoadDB(); err != nil {
panic(err)
}
log.Print("Starting with", config)
if err := srv.Serve(); err != nil {
panic(err)
}
}