diff --git a/utils.go b/utils.go new file mode 100644 index 0000000..38ef3fd --- /dev/null +++ b/utils.go @@ -0,0 +1,46 @@ +package main + +import ( + "fmt" + "os" + + "github.com/joho/godotenv" + "gopkg.in/yaml.v3" +) + +func LoadEnv() { + if err := godotenv.Load(); err != nil { + fmt.Println("Warnung: .env Datei konnte nicht geladen werden.") + } +} + +func LoadYAML() ([]Rewrite, error) { + file := os.Getenv("YAML_FILE") + f, err := os.Open(file) + if err != nil { + return nil, err + } + defer f.Close() + + var data struct { + Rewrites []Rewrite `yaml:"rewrites"` + } + err = yaml.NewDecoder(f).Decode(&data) + return data.Rewrites, err +} + +func SaveYAML(rewrites []Rewrite) error { + file := os.Getenv("YAML_FILE") + f, err := os.Create(file) + if err != nil { + return err + } + defer f.Close() + + data := map[string][]Rewrite{ + "rewrites": rewrites, + } + enc := yaml.NewEncoder(f) + enc.SetIndent(2) + return enc.Encode(data) +}