38 lines
844 B
Go
38 lines
844 B
Go
package main
|
|
|
|
import (
|
|
"backea/internal/backup"
|
|
"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)
|
|
}
|
|
|
|
ctx := context.Background()
|
|
|
|
// Parse the service flag to extract group and index if provided
|
|
var serviceName, serviceIndex string
|
|
if *serviceFlag != "" {
|
|
parts := strings.SplitN(*serviceFlag, "-", 2)
|
|
serviceName = parts[0]
|
|
if len(parts) > 1 {
|
|
serviceIndex = parts[1]
|
|
}
|
|
}
|
|
|
|
if err := backup.PerformBackups(ctx, *configPath, serviceName, serviceIndex); err != nil {
|
|
log.Fatalf("Backup failed: %v", err)
|
|
}
|
|
}
|