restic-scheduler/main.go

50 lines
883 B
Go

package main
import (
"flag"
"fmt"
"log"
"github.com/hashicorp/hcl/v2/hclsimple"
)
var (
// version of restic-scheduler being run.
version = "dev"
)
func main() {
showVersion := flag.Bool("version", false, "Display the version of minitor and exit")
flag.Parse()
// Print version if flag is provided
if *showVersion {
fmt.Println("restic-scheduler version:", version)
return
}
var config Config
args := flag.Args()
if len(args) == 0 {
log.Fatalf("Requires a path to a job file, but found none")
}
if err := hclsimple.DecodeFile(args[0], nil, &config); err != nil {
log.Fatalf("Failed to load configuration: %s", err)
}
log.Printf("Configuration is %#v", config)
if len(config.Jobs) == 0 {
log.Fatalf("No jobs defined in config")
}
for _, job := range config.Jobs {
if err := job.RunBackup(); err != nil {
log.Fatalf("%v", err)
}
}
}