package main import ( "fmt" "log" "os" "path/filepath" "strings" "gopkg.in/yaml.v2" {{- range $key, $value := .}} pkg{{$key}} "{{$value}}" {{- end}} ) func main() { replacer := strings.NewReplacer( "github.com/owncloud/ocis/extensions/", "", "/pkg/config/defaults", "", ) cfg := map[string]string{ {{- range $key, $value := .}} replacer.Replace("{{$value}}"): func() string { fmt.Println("Generating example YAML config for {{ $value -}}") c := pkg{{$key}}.DefaultConfig() pkg{{$key}}.EnsureDefaults(c) pkg{{$key}}.Sanitize(c) yml, err := yaml.Marshal(c) if err != nil { log.Fatalf("Marshalling yaml for pkg0 failed: %s\n", err) } return "# Autogenerated\n" + string(yml) }(), {{- end}} } for pkg, yml := range cfg { targetFolders := []string{ // TODO: comment in when it is clear how to commit this to the structure of the master|main branch // filepath.Join("../../", pkg, "/config"), "../../docs/extensions/_includes/", } for _, targetFolder := range targetFolders { os.MkdirAll(targetFolder, 0700) targetYamlFile, err := os.Create(filepath.Join(targetFolder, replacer.Replace(pkg) + "-config-example.yaml")) if err != nil { log.Fatalf("Failed to create target file for : %s", err) } defer targetYamlFile.Close() targetYamlFile.WriteString(yml) } } }