restic-scheduler/main.go

50 lines
883 B
Go
Raw Normal View History

2022-02-18 22:36:19 +00:00
package main
2022-02-20 06:09:23 +00:00
import (
"flag"
"fmt"
"log"
"github.com/hashicorp/hcl/v2/hclsimple"
)
2022-02-18 22:36:19 +00:00
var (
2022-02-23 00:55:41 +00:00
// version of restic-scheduler being run.
2022-02-18 22:36:19 +00:00
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
}
2022-02-20 06:09:23 +00:00
var config Config
2022-02-23 00:39:01 +00:00
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 {
2022-02-20 06:09:23 +00:00
log.Fatalf("Failed to load configuration: %s", err)
}
log.Printf("Configuration is %#v", config)
2022-02-23 00:39:01 +00:00
if len(config.Jobs) == 0 {
log.Fatalf("No jobs defined in config")
}
for _, job := range config.Jobs {
2022-02-23 22:13:00 +00:00
if err := job.RunBackup(); err != nil {
2022-02-23 00:39:01 +00:00
log.Fatalf("%v", err)
}
}
2022-02-18 22:36:19 +00:00
}