From 59eaf7c1b8f471b1813371ccfcda9d8871ea7a3c Mon Sep 17 00:00:00 2001 From: Christian Richter Date: Thu, 10 Mar 2022 14:06:51 +0100 Subject: [PATCH] Output example yaml --- docs/helpers/configenvextractor.go | 10 ++-- docs/helpers/example-config-generator.go.tmpl | 47 +++++++++++++++++++ docs/helpers/extractor.go.tmpl | 2 +- idm/pkg/config/defaults/defaultconfig.go | 9 ++-- 4 files changed, 57 insertions(+), 11 deletions(-) create mode 100644 docs/helpers/example-config-generator.go.tmpl diff --git a/docs/helpers/configenvextractor.go b/docs/helpers/configenvextractor.go index eb8dbada3d..1d5b9f6f81 100644 --- a/docs/helpers/configenvextractor.go +++ b/docs/helpers/configenvextractor.go @@ -6,13 +6,15 @@ import ( "log" "os" "os/exec" + "path" "path/filepath" "strings" "text/template" ) var targets = map[string]string{ - "extractor.go.tmpl": "output/runner.go", + "example-config-generator.go.tmpl": "output/exampleconfig/example-config-generator.go", + "extractor.go.tmpl": "output/env/runner.go", } func main() { @@ -34,7 +36,6 @@ func main() { RunIntermediateCode(output) } fmt.Println("Cleaning up") - os.Chdir("../") os.RemoveAll("output") } @@ -45,7 +46,7 @@ func GenerateIntermediateCode(templatePath string, intermediateCodePath string, } fmt.Println("Generating intermediate go code for " + intermediateCodePath + " using template " + templatePath) tpl := template.Must(template.New("").Parse(string(content))) - os.Mkdir("output", 0700) + os.MkdirAll(path.Dir(intermediateCodePath), 0700) runner, err := os.Create(intermediateCodePath) if err != nil { log.Fatal(err) @@ -55,9 +56,8 @@ func GenerateIntermediateCode(templatePath string, intermediateCodePath string, func RunIntermediateCode(intermediateCodePath string) { fmt.Println("Running intermediate go code for " + intermediateCodePath) - os.Chdir("output") os.Setenv("OCIS_BASE_DATA_PATH", "~/.ocis") - out, err := exec.Command("go", "run", "../"+intermediateCodePath).Output() + out, err := exec.Command("go", "run", intermediateCodePath).Output() if err != nil { log.Fatal(err) } diff --git a/docs/helpers/example-config-generator.go.tmpl b/docs/helpers/example-config-generator.go.tmpl new file mode 100644 index 0000000000..ebc95c6eb0 --- /dev/null +++ b/docs/helpers/example-config-generator.go.tmpl @@ -0,0 +1,47 @@ +package main + +import ( + "fmt" + "log" + "os" + "path/filepath" + "strings" + + "gopkg.in/yaml.v2" + {{- range $key, $value := .}} + pkg{{$key}} "{{$value}}" + {{- end}} +) + +func main() { + targetFolder := "example-yaml/" + os.MkdirAll(targetFolder, 0700) + replacer := strings.NewReplacer( + "github.com/owncloud/ocis/", "", + "/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 { + targetYamlFile, err := os.Create(filepath.Join(targetFolder, replacer.Replace(pkg) + "-example.yaml")) + if err != nil { + log.Fatalf("Failed to create target file for : %s", err) + } + defer targetYamlFile.Close() + targetYamlFile.WriteString(yml) + } +} + diff --git a/docs/helpers/extractor.go.tmpl b/docs/helpers/extractor.go.tmpl index 86ac7dd9f2..351ce80e6e 100644 --- a/docs/helpers/extractor.go.tmpl +++ b/docs/helpers/extractor.go.tmpl @@ -23,7 +23,7 @@ type ConfigField struct { func main() { fmt.Println("Generating documentation for environment variables:") -content, err := ioutil.ReadFile("../../../docs/templates/CONFIGURATION.tmpl") +content, err := ioutil.ReadFile("../../docs/templates/CONFIGURATION.tmpl") if err != nil { log.Fatal(err) } diff --git a/idm/pkg/config/defaults/defaultconfig.go b/idm/pkg/config/defaults/defaultconfig.go index 7457a1c735..b1042376aa 100644 --- a/idm/pkg/config/defaults/defaultconfig.go +++ b/idm/pkg/config/defaults/defaultconfig.go @@ -22,11 +22,10 @@ func DefaultConfig() *config.Config { Name: "idm", }, IDM: config.Settings{ - LDAPSAddr: "127.0.0.1:9235", - Cert: path.Join(defaults.BaseDataPath(), "idm", "ldap.crt"), - Key: path.Join(defaults.BaseDataPath(), "idm", "ldap.key"), - DatabasePath: path.Join(defaults.BaseDataPath(), "idm", "ocis.boltdb"), - AdminPassword: "admin", + LDAPSAddr: "127.0.0.1:9235", + Cert: path.Join(defaults.BaseDataPath(), "idm", "ldap.crt"), + Key: path.Join(defaults.BaseDataPath(), "idm", "ldap.key"), + DatabasePath: path.Join(defaults.BaseDataPath(), "idm", "ocis.boltdb"), }, } }