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  }