github.com/masterhung0112/hk_server/v5@v5.0.0-20220302090640-ec71aef15e1c/scripts/config_generator/main.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package main 5 6 import ( 7 "encoding/json" 8 "fmt" 9 "os" 10 11 "github.com/masterhung0112/hk_server/v5/model" 12 ) 13 14 // generateDefaultConfig writes default config to outputFile. 15 func generateDefaultConfig(outputFile *os.File) error { 16 defaultCfg := &model.Config{} 17 defaultCfg.SetDefaults() 18 if data, err := json.MarshalIndent(defaultCfg, "", " "); err != nil { 19 return err 20 } else if _, err := outputFile.Write(data); err != nil { 21 return err 22 } 23 return nil 24 } 25 26 func main() { 27 outputFile := os.Getenv("OUTPUT_CONFIG") 28 if outputFile == "" { 29 fmt.Println("Output file name is missing. Please set OUTPUT_CONFIG env variable to absolute path") 30 os.Exit(2) 31 } 32 if _, err := os.Stat(outputFile); !os.IsNotExist(err) { 33 _, _ = fmt.Fprintf(os.Stderr, "File %s already exists. Not overwriting!\n", outputFile) 34 os.Exit(2) 35 } 36 37 if file, err := os.Create(outputFile); err == nil { 38 err = generateDefaultConfig(file) 39 _ = file.Close() 40 if err != nil { 41 panic(err) 42 } 43 } else { 44 panic(err) 45 } 46 }