49 lines
1.1 KiB
Go

package main
import (
"backea/internal/backup/config"
"backea/internal/backup/core"
"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 := config.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)
}
}