aboutsummaryrefslogtreecommitdiffstats
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go55
1 files changed, 1 insertions, 54 deletions
diff --git a/main.go b/main.go
index 570890d..ffee7e4 100644
--- a/main.go
+++ b/main.go
@@ -1,58 +1,5 @@
package main
-import (
- "context"
- "flag"
- "log"
- "os"
- "os/signal"
- "syscall"
-)
-
-var (
- hostDir = flag.String("host", "/host", "Host source directory (read-only)")
- dataDir = flag.String("data", "/data", "Data destination directory")
- verbose = flag.Bool("verbose", false, "Enable verbose logging (shorthand for -log-level debug)")
- logLevel = flag.String("log-level", "info", "Log level: debug, info, warn, error, none")
- dryRun = flag.Bool("dry-run", false, "Preview what would be synced without copying")
-)
-
func main() {
- flag.Parse()
-
- if *verbose {
- *logLevel = "debug"
- }
-
- level, err := ParseLogLevel(*logLevel)
- if err != nil {
- log.Fatal(err)
- }
- SetLogLevel(level)
-
- log.SetFlags(0)
- log.SetOutput(nil)
-
- stack := NewGitignoreStack(*hostDir)
-
- manifest, err := initialSync(*hostDir, *dataDir, stack, *dryRun)
- if err != nil {
- logErrorf("initial sync failed: %v", err)
- os.Exit(1)
- }
-
- if *dryRun {
- logInfo("dry-run complete, exiting")
- return
- }
-
- logInfo("watcher: ready, monitoring for changes ...")
-
- ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
- defer cancel()
-
- if err := watch(ctx, *hostDir, *dataDir, manifest, stack, *dryRun); err != nil {
- logErrorf("watcher failed: %v", err)
- os.Exit(1)
- }
+ run()
}