31 lines
772 B
Go
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)
|
|
}
|