package main import ( "backea/internal/backup/core" "backea/internal/backup/models" "backea/internal/backup/strategy" "context" "flag" "log" "strings" "github.com/joho/godotenv" ) func main() { configPath := flag.String("config", "config.yml", "Path to config file") serviceFlag := flag.String("service", "", "Service to backup (format: group or group.index)") flag.Parse() if err := godotenv.Load(); err != nil { log.Printf("Warning: Error loading .env file: %v", err) } // Parse service name and index var serviceName, serviceIndex string if *serviceFlag != "" { parts := strings.SplitN(*serviceFlag, ".", 2) serviceName = parts[0] if len(parts) > 1 { serviceIndex = parts[1] } } cfg, err := models.LoadConfig(*configPath) if err != nil { log.Fatalf("Failed to load configuration: %v", err) } factory, _ := strategy.NewFactory(*configPath) executor := core.NewExecutor(cfg, *factory) // Perform backups ctx := context.Background() if err := executor.PerformBackups(ctx, serviceName, serviceIndex); err != nil { log.Fatalf("Backup failed: %v", err) } }