parse job definitions from YAML file

This commit is contained in:
Sam Hoffman
2026-01-30 19:16:00 -05:00
parent b14132886d
commit 5ea252ecb7
7 changed files with 94 additions and 15 deletions

27
internal/jobs/parse.go Normal file
View File

@@ -0,0 +1,27 @@
package jobs
import (
"io"
"os"
"gopkg.in/yaml.v3"
)
type JobsRoot struct {
Jobs []BackupJob `yaml:"jobs"`
}
func Parse(reader io.Reader) ([]BackupJob, error) {
dec := yaml.NewDecoder(reader)
var jobsRoot JobsRoot
err := dec.Decode(&jobsRoot)
return jobsRoot.Jobs, err
}
func ParseFile(path string) ([]BackupJob, error) {
f, err := os.Open(path)
if err != nil {
return nil, err
}
return Parse(f)
}