add update interval option
This commit is contained in:
37
main.go
37
main.go
@ -35,29 +35,42 @@ type tracker struct {
|
||||
Config lib.Config
|
||||
Last time.Time
|
||||
List []lib.Package
|
||||
Tick time.Ticker
|
||||
Tick *time.Ticker
|
||||
}
|
||||
|
||||
func (t *tracker) Reload() error {
|
||||
t.List = []lib.Package{}
|
||||
err := t.Config.Load(&t.List, "config.json")
|
||||
t.Last = time.Now()
|
||||
return err
|
||||
|
||||
for _, p := range t.Config.Pools {
|
||||
if err := p.Load(&t.List); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t *tracker) Loop() {
|
||||
var err error
|
||||
|
||||
if err = t.Reload(); err != nil {
|
||||
log.Error("Failed to update packages: %s", err.Error())
|
||||
if err := t.Config.Load(&t.List, "config.json"); err != nil {
|
||||
log.Error("Failed to load the configuration: %s", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if err := t.Reload(); err != nil {
|
||||
log.Error("Failed to update packages: %s", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
t.Tick = time.NewTicker(time.Minute * time.Duration(t.Config.Interval))
|
||||
|
||||
for {
|
||||
select {
|
||||
case <-t.Tick.C:
|
||||
if err = t.Reload(); err != nil {
|
||||
if err := t.Reload(); err != nil {
|
||||
log.Error("Failed to update packages: %s", err.Error())
|
||||
}
|
||||
|
||||
case <-t.Channel:
|
||||
t.Tick.Stop()
|
||||
return
|
||||
@ -72,14 +85,13 @@ func (t *tracker) Stop() {
|
||||
func main() {
|
||||
var (
|
||||
tracker tracker
|
||||
engine *html.Engine
|
||||
app *fiber.App
|
||||
err error
|
||||
)
|
||||
|
||||
engine = html.New("./templates", ".html")
|
||||
app = fiber.New(fiber.Config{
|
||||
DisableStartupMessage: true,
|
||||
Views: engine,
|
||||
Views: html.New("./templates", ".html"),
|
||||
})
|
||||
|
||||
app.Static("/", "./public")
|
||||
@ -102,8 +114,7 @@ func main() {
|
||||
|
||||
log.Info("Starting MatterLinux package tracker on port 9877")
|
||||
|
||||
err := app.Listen(":9877")
|
||||
if err != nil {
|
||||
if err = app.Listen(":9877"); err != nil {
|
||||
log.Error("Error starting server: %s", err.Error())
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user