func LoadConfig()

in vermeer/main.go [39:126]


func LoadConfig() map[string]string {
	env := flag.String("env", "default", "config environment")
	httpPeer := flag.String("http_peer", "", "http listen address")
	grpcPeer := flag.String("grpc_peer", "", "grpc listen address")
	masterPeer := flag.String("master_peer", "", "master grpc address")
	prefix := flag.String("log_prefix", "", "log file full path")
	runMode := flag.String("run_mode", "", "server run mode: master, worker")
	logLevel := flag.String("log_level", "", "log level")
	debugMode := flag.String("debug_mode", "", "debug mode")
	periods := flag.String("periods", "", "periods handler")
	funName := flag.String("func_name", "", "preprocess handler")
	taskParallelNum := flag.String("task_parallel_num", "", "task parallel num")
	auth := flag.String("auth", "", "authentication type: none, token")
	authTokenFactor := flag.String("auth_token_factor", "", "token generating factor, at least 4 characters")
	flag.Parse()

	config := map[string]string{
		"env":         *env,
		"http_peer":   "0.0.0.0:6688",
		"grpc_peer":   "0.0.0.0:6689",
		"master_peer": "0.0.0.0:6689",
		"log_prefix":  common.ServiceName + ".log",
		"run_mode":    "master",
	}

	configFile := "config/" + *env + ".ini"
	if strings.HasPrefix(*env, "/") {
		configFile = *env
	}
	cfg, err := goconfig.LoadConfigFile(configFile)
	if err != nil {
		panic(fmt.Sprintf("load config error: %s", err))
	}
	config2, _ := cfg.GetSection("default")
	for k, v := range config2 {
		config[k] = v
	}

	config["config_path"] = configFile
	config["__env__"] = *env

	if *httpPeer != "" {
		config["http_peer"] = *httpPeer
	}
	if *grpcPeer != "" {
		config["grpc_peer"] = *grpcPeer
	}
	if *masterPeer != "" {
		config["master_peer"] = *masterPeer
	}
	if *prefix != "" {
		config["log_prefix"] = *prefix
	}
	if *runMode != "" {
		config["run_mode"] = *runMode
	}
	if *periods != "" {
		config["periods"] = *periods
	}
	if *funName != "" {
		config["func_name"] = *funName
	}
	if *taskParallelNum != "" {
		config["task_parallel_num"] = *taskParallelNum
	}
	if *auth != "" {
		config["auth"] = *auth
	}
	if *authTokenFactor != "" {
		config["auth_token_factor"] = *authTokenFactor
	}
	if *logLevel != "" {
		config["log_level"] = *logLevel
	}
	if *debugMode != "" {
		config["debug_mode"] = *debugMode
	}
	for _, section := range cfg.GetSectionList() {
		if section == "default" {
			continue
		}
		subCfg, _ := cfg.GetSection(section)
		b, _ := json.Marshal(subCfg)
		config[section] = string(b)
	}

	return config
}