diff --git a/dist/oculus_darwin_amd64_main b/dist/oculus_darwin_amd64_main index 2fa19b2..c38b89c 100755 Binary files a/dist/oculus_darwin_amd64_main and b/dist/oculus_darwin_amd64_main differ diff --git a/dist/oculus_darwin_arm64_main b/dist/oculus_darwin_arm64_main index e5aab1a..8935d37 100755 Binary files a/dist/oculus_darwin_arm64_main and b/dist/oculus_darwin_arm64_main differ diff --git a/dist/oculus_linux_amd64_main b/dist/oculus_linux_amd64_main index d4e4a89..5104047 100755 Binary files a/dist/oculus_linux_amd64_main and b/dist/oculus_linux_amd64_main differ diff --git a/dist/oculus_linux_amd64_main_static b/dist/oculus_linux_amd64_main_static index d98d1b4..a9198e3 100755 Binary files a/dist/oculus_linux_amd64_main_static and b/dist/oculus_linux_amd64_main_static differ diff --git a/dist/oculus_linux_arm64_main b/dist/oculus_linux_arm64_main index c1b79f3..ebd8cc1 100755 Binary files a/dist/oculus_linux_arm64_main and b/dist/oculus_linux_arm64_main differ diff --git a/dist/oculus_linux_arm64_main_static b/dist/oculus_linux_arm64_main_static index f55a7cb..4c16faf 100755 Binary files a/dist/oculus_linux_arm64_main_static and b/dist/oculus_linux_arm64_main_static differ diff --git a/dist/oculus_windows_amd64_main b/dist/oculus_windows_amd64_main index 9aa55cd..4b631dd 100755 Binary files a/dist/oculus_windows_amd64_main and b/dist/oculus_windows_amd64_main differ diff --git a/main.go b/main.go index e5bc22a..826fcc8 100644 --- a/main.go +++ b/main.go @@ -57,24 +57,13 @@ func main() { log.Fatalf("Error creating diffs directory: %v", err) } - ticker := time.NewTicker(1 * time.Minute) - defer ticker.Stop() - for { - select { - case <-ticker.C: - log.Println("Fetching and monitoring containers...") - err := fetchAndMonitorContainers() - if err != nil { - log.Printf("Error in fetching and monitoring containers: %v", err) - } - default: - time.Sleep(1 * time.Second) - err := monitorContainers() - if err != nil { - log.Printf("Error in monitoring containers: %v", err) - } + err := fetchAndMonitorContainers() + if err != nil { + log.Printf("Error in fetching and monitoring containers: %v", err) } + + time.Sleep(1 * time.Second) } } @@ -83,32 +72,14 @@ func fetchAndMonitorContainers() error { if err != nil { return err } - log.Printf("Fetched %d containers\n", len(containers)) - mu.Lock() - defer mu.Unlock() - - // Remove containers that are no longer present - for id := range monitoredContainers { - found := false - for _, container := range containers { - if container.ID == id { - found = true - break - } - } - if !found { - delete(monitoredContainers, id) - log.Printf("Stopped monitoring container %s\n", id) - } - } - - // Add or update containers for _, container := range containers { + mu.Lock() if _, exists := monitoredContainers[container.ID]; !exists { interval, err := time.ParseDuration(container.Interval) if err != nil { log.Printf("Invalid interval for container %s (%s): %v", container.Name, container.ID, err) + mu.Unlock() continue } @@ -116,16 +87,10 @@ func fetchAndMonitorContainers() error { Info: container, LastChecked: time.Now().Add(-interval), } - log.Printf("Started monitoring container %s (%s) with interval %s\n", container.Name, container.ID, container.Interval) - } else { - monitoredContainers[container.ID].Info = container } + mu.Unlock() } - return nil -} - -func monitorContainers() error { var wg sync.WaitGroup for _, monitoredContainer := range monitoredContainers { wg.Add(1) @@ -141,7 +106,6 @@ func monitorContainers() error { if time.Since(mc.LastChecked) >= interval { mc.LastChecked = time.Now() mu.Unlock() - log.Printf("Checking container %s (%s)\n", mc.Info.Name, mc.Info.ID) checkAndNotify(mc.Info) } else { mu.Unlock() @@ -149,6 +113,7 @@ func monitorContainers() error { }(monitoredContainer) } wg.Wait() + return nil } @@ -246,15 +211,10 @@ func filterDiffOutput(diffOutput, cname string, ignores []string) (string, error return "", fmt.Errorf("error writing diff to file: %s", err) } - if len(ignores) == 0 { - log.Println("No ignore patterns provided.") - return "", fmt.Errorf("no ignore patterns provided") - } - // Construct the filter command args := append([]string{filename}, ignores...) - cmd := exec.Command("/usr/local/bin/oculus_filter", args...) - fullCommand := fmt.Sprintf("oculus_filter %s", strings.Join(cmd.Args, " ")) + cmd := exec.Command("filter", args...) + fullCommand := fmt.Sprintf("filter %s", strings.Join(cmd.Args, " ")) log.Printf("Running command: %s", fullCommand) fmt.Printf("Running command: %s\n", fullCommand) // Print the command to stdout for debugging