forked from ALHP/ALHP.GO
added config reload
This commit is contained in:
27
main.go
27
main.go
@@ -615,6 +615,9 @@ func main() {
|
|||||||
killSignals := make(chan os.Signal, 1)
|
killSignals := make(chan os.Signal, 1)
|
||||||
signal.Notify(killSignals, syscall.SIGINT, syscall.SIGTERM)
|
signal.Notify(killSignals, syscall.SIGINT, syscall.SIGTERM)
|
||||||
|
|
||||||
|
reloadSignals := make(chan os.Signal, 1)
|
||||||
|
signal.Notify(reloadSignals, syscall.SIGUSR1)
|
||||||
|
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
confStr, err := os.ReadFile("config.yaml")
|
confStr, err := os.ReadFile("config.yaml")
|
||||||
@@ -680,7 +683,29 @@ func main() {
|
|||||||
go buildManager.syncWorker()
|
go buildManager.syncWorker()
|
||||||
go buildManager.htmlWorker()
|
go buildManager.htmlWorker()
|
||||||
|
|
||||||
<-killSignals
|
killLoop:
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-killSignals:
|
||||||
|
break killLoop
|
||||||
|
case <-reloadSignals:
|
||||||
|
confStr, err := os.ReadFile("config.yaml")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("Unable to open config: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = yaml.Unmarshal(confStr, &conf)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("Unable to parse config: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
lvl, err := log.ParseLevel(conf.Logging.Level)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("Failure setting logging level: %v", err)
|
||||||
|
}
|
||||||
|
log.SetLevel(lvl)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
buildManager.exit = true
|
buildManager.exit = true
|
||||||
buildManager.buildProcMutex.RLock()
|
buildManager.buildProcMutex.RLock()
|
||||||
|
2
utils.go
2
utils.go
@@ -664,7 +664,7 @@ func housekeeping(repo string, wg *sync.WaitGroup) error {
|
|||||||
// compare db-version with repo version
|
// compare db-version with repo version
|
||||||
repoVer, err := pkg.repoVersion()
|
repoVer, err := pkg.repoVersion()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Infof("[HK/%s/%s] package not present on disk", pkg.FullRepo, pkg.Pkgbase)
|
log.Infof("[HK/%s/%s] package not present on disk (%v)", pkg.FullRepo, pkg.Pkgbase, err)
|
||||||
// error means package was not found -> delete version & hash from db so rebuild can happen
|
// error means package was not found -> delete version & hash from db so rebuild can happen
|
||||||
err := pkg.DbPackage.Update().ClearStatus().ClearHash().ClearRepoVersion().Exec(context.Background())
|
err := pkg.DbPackage.Update().ClearStatus().ClearHash().ClearRepoVersion().Exec(context.Background())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Reference in New Issue
Block a user