update repository list on timer instead of generating per request
1 file changed, 11 insertions(+), 2 deletions(-)
changed files
M routes/handler.go → routes/handler.go
@@ -13,6 +13,7 @@ "github.com/fsnotify/fsnotify" "github.com/savsgio/atreugo/v11" "alin.ovh/elgit/config" + "alin.ovh/elgit/data" ) var ErrMethodNotAllowed = fmt.Errorf("that's not possible")@@ -26,8 +27,9 @@ log.Fatal(err) } d := deps{ - c, - projects, + c: c, + projects: projects, + repos: &data.Entries{}, } addr := net.JoinHostPort(c.Server.Host, strconv.FormatInt(c.Server.Port, 10))@@ -60,6 +62,13 @@ err = watcher.Add(plist) if err != nil { log.Fatal(err) } + + go func() { + d.UpdateRepos() + for range time.Tick(time.Minute) { + d.UpdateRepos() + } + }() go func() { for {