parsing config directly from cmd flag -C

This commit is contained in:
ginuerzh 2023-12-19 21:45:34 +08:00
parent bc37fac037
commit 7264fca4f8

View File

@ -1,6 +1,7 @@
package main package main
import ( import (
"encoding/json"
"net/http" "net/http"
"os" "os"
@ -19,10 +20,12 @@ type program struct {
func (p *program) Init(env svc.Environment) error { func (p *program) Init(env svc.Environment) error {
cfg := &config.Config{} cfg := &config.Config{}
if cfgFile != "" { if cfgFile != "" {
if err := json.Unmarshal([]byte(cfgFile), cfg); err != nil {
if err := cfg.ReadFile(cfgFile); err != nil { if err := cfg.ReadFile(cfgFile); err != nil {
return err return err
} }
} }
}
cmdCfg, err := buildConfigFromCmd(services, nodes) cmdCfg, err := buildConfigFromCmd(services, nodes)
if err != nil { if err != nil {
@ -30,7 +33,7 @@ func (p *program) Init(env svc.Environment) error {
} }
cfg = p.mergeConfig(cfg, cmdCfg) cfg = p.mergeConfig(cfg, cmdCfg)
if len(cfg.Services) == 0 && apiAddr == "" { if len(cfg.Services) == 0 && apiAddr == "" && cfg.API == nil {
if err := cfg.Load(); err != nil { if err := cfg.Load(); err != nil {
return err return err
} }