From b320146540bd7665f961b556bfa9d01e3a3bf42a Mon Sep 17 00:00:00 2001 From: "A. Ottr" Date: Fri, 23 Jan 2026 21:03:05 +0100 Subject: [PATCH] fix: selection was based on old inventory Signed-off-by: A. Ottr --- main.go | 12 ++++++------ sync.go | 12 ++++++++++-- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index 8c534e9..1cfd1f8 100644 --- a/main.go +++ b/main.go @@ -37,18 +37,18 @@ func main() { } fmt.Printf("Detected host: %s\n", currentHost) - assignedStacks, err := getAssignedStacks(cfg.RepoPath, currentHost) - if err != nil { - log.Fatalf("Failed to get assigned stacks: %v", err) - } - fmt.Printf("Stacks assigned to this host: %v\n", assignedStacks) - fmt.Println("Pulling git repository...") changedStacks, err := pullAndDetectChanges(cfg.RepoPath) if err != nil { log.Fatalf("Failed to pull or detect changes: %v", err) } + assignedStacks, err := getAssignedStacks(cfg.RepoPath, currentHost) + if err != nil { + log.Fatalf("Failed to get assigned stacks: %v", err) + } + fmt.Printf("Stacks assigned to this host: %v\n", assignedStacks) + if len(changedStacks) == 0 { fmt.Println("No changes detected.") return diff --git a/sync.go b/sync.go index f0c6c68..d32fd9e 100644 --- a/sync.go +++ b/sync.go @@ -75,12 +75,16 @@ func getAssignedStacks(repoPath, hostname string) ([]string, error) { data, err := os.ReadFile(inventoryFile) if err != nil { - return nil, fmt.Errorf("failed to read inventory file %s: %w", inventoryFile, err) + return []string{}, fmt.Errorf("failed to read inventory file %s: %w", inventoryFile, err) } var inv inventory if err := yaml.Unmarshal(data, &inv); err != nil { - return nil, fmt.Errorf("failed to parse inventory file %s: %w", inventoryFile, err) + return []string{}, fmt.Errorf("failed to parse inventory file %s: %w", inventoryFile, err) + } + + if inv.Hosts == nil { + return []string{}, fmt.Errorf("inventory file %s has no 'hosts' key", inventoryFile) } stacks, exists := inv.Hosts[hostname] @@ -88,6 +92,10 @@ func getAssignedStacks(repoPath, hostname string) ([]string, error) { return []string{}, nil // Host not in inventory, no stacks assigned } + if stacks == nil { + return []string{}, nil + } + return stacks, nil } -- 2.51.2