Files
software-station/internal/config/updater.go
2025-12-27 02:57:25 -06:00

31 lines
772 B
Go

package config
import (
"log"
"sync"
"time"
"software-station/internal/models"
)
func StartBackgroundUpdater(path, server, token string, mu *sync.RWMutex, softwareList *[]models.Software, interval time.Duration) {
ticker := time.NewTicker(interval)
go func() {
for range ticker.C {
log.Println("Checking for software updates...")
newList := LoadSoftwareFromGitea(path, server, token)
if len(newList) > 0 {
mu.Lock()
*softwareList = newList
mu.Unlock()
log.Printf("Software list updated with %d items", len(newList))
}
}
}()
}
// LoadSoftwareFromGitea always fetches from Gitea and updates cache
func LoadSoftwareFromGitea(path, server, token string) []models.Software {
return LoadSoftwareExtended(path, server, token, false)
}