mirror of
https://github.com/psviderski/uncloud.git
synced 2026-10-06 13:18:58 +00:00
fix(caddyconfig): custom global Caddy config is preserved on regeneration,warn about last load error in 'uc caddy config' (fixes #412)
This commit is contained in:
1 parent
45d33d87dd
commit
ace8cbf974
18 files changed
+1210
-847
No files matched your search
@@ -4,12 +4,15 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Service provides methods to interact with the Caddy configuration on the machine.
|
||||
type Service struct {
|
||||
configDir string
|
||||
configDir string
|
||||
mu sync.RWMutex
|
||||
lastReconciliationError error
|
||||
}
|
||||
|
||||
// NewService creates a new Service instance with the specified Caddy configuration directory.
|
||||
@@ -17,7 +20,8 @@ func NewService(configDir string) *Service {
|
||||
return &Service{configDir: configDir}
|
||||
}
|
||||
|
||||
// Caddyfile retrieves the current Caddy configuration (Caddyfile) from the machine's config directory.
|
||||
// Caddyfile retrieves the saved Caddyfile from the machine's config directory. The saved file may differ from the
|
||||
// running configuration if Caddy accepted a load but the subsequent write failed.
|
||||
func (s *Service) Caddyfile() (string, time.Time, error) {
|
||||
path := filepath.Join(s.configDir, "Caddyfile")
|
||||
content, err := os.ReadFile(path)
|
||||
@@ -33,3 +37,17 @@ func (s *Service) Caddyfile() (string, time.Time, error) {
|
||||
|
||||
return string(content), fileInfo.ModTime(), nil
|
||||
}
|
||||
|
||||
// LastReconciliationError reports the most recent unsuccessful controller attempt, if any. A successful attempt
|
||||
// clears it. An empty value does not prove that Caddy has loaded the saved Caddyfile.
|
||||
func (s *Service) LastReconciliationError() error {
|
||||
s.mu.RLock()
|
||||
defer s.mu.RUnlock()
|
||||
return s.lastReconciliationError
|
||||
}
|
||||
|
||||
func (s *Service) setReconciliationResult(err error) {
|
||||
s.mu.Lock()
|
||||
defer s.mu.Unlock()
|
||||
s.lastReconciliationError = err
|
||||
}
|
||||
Reference in new issue
Block a user