diff --git a/develop/jd_help/help.go b/develop/jd_help/help.go index 23c6b69..b4c1802 100644 --- a/develop/jd_help/help.go +++ b/develop/jd_help/help.go @@ -95,12 +95,14 @@ func init() { f["JD_CASH_SHARECODES"] = e[k] } } + envs := []qinglong.Env{} for i := range f { - qinglong.SetEnv(qinglong.Env{ + envs = append(envs, qinglong.Env{ Name: i, Value: f[i], }) } + qinglong.SetEnv(envs...) return } } diff --git a/develop/qinglong/config.go b/develop/qinglong/config.go index 91d8221..87e85b2 100644 --- a/develop/qinglong/config.go +++ b/develop/qinglong/config.go @@ -70,46 +70,48 @@ func GetEnvs(searchValue string) ([]Env, error) { return envs, nil } -func SetEnv(env Env) error { +func SetEnv(envs ...Env) error { config, err := GetConfig() if err != nil { return err } lines := strings.Split(config, "\n") - set := false - for j, line := range lines { - for i, pattern := range []string{`^\s*export\s+([^'"=\s]+)=[ '"]?(.*?)['"]?$`, `^\s*#[#\s]*export\s+([^'"=\s]+)=[ '"]?(.*?)['"]?$`, `^\s*([^'"=\s]+)=[ '"]?(.*?)['"]?$`, `^\s*#[#\s]*([^'"=\s]+)=[ '"]?(.*?)['"]?$`} { - if v := regexp.MustCompile(pattern).FindStringSubmatch(line); len(v) > 0 { - e := Env{} - if i == 1 || i == 3 { - e.Status = 1 + for _, env := range envs { + set := false + for j, line := range lines { + for i, pattern := range []string{`^\s*export\s+([^'"=\s]+)=[ '"]?(.*?)['"]?$`, `^\s*#[#\s]*export\s+([^'"=\s]+)=[ '"]?(.*?)['"]?$`, `^\s*([^'"=\s]+)=[ '"]?(.*?)['"]?$`, `^\s*#[#\s]*([^'"=\s]+)=[ '"]?(.*?)['"]?$`} { + if v := regexp.MustCompile(pattern).FindStringSubmatch(line); len(v) > 0 { + e := Env{} + if i == 1 || i == 3 { + e.Status = 1 + } + e.Name = v[1] + e.Value = v[2] + if env.Name != e.Name { + continue + } + if env.Value != e.Value { + e.Value = env.Value + } + if env.Status != e.Status { + e.Status = env.Status + } + h := "" + if e.Status == 1 { + h = "# " + } + if i <= 1 { + h = "export " + } + lines[j] = h + fmt.Sprintf("%s=\"%s\"", e.Name, e.Value) + set = true + break } - e.Name = v[1] - e.Value = v[2] - if env.Name != e.Name { - continue - } - if env.Value != e.Value { - e.Value = env.Value - } - if env.Status != e.Status { - e.Status = env.Status - } - h := "" - if e.Status == 1 { - h = "# " - } - if i <= 1 { - h = "export " - } - lines[j] = h + fmt.Sprintf("%s=\"%s\"", e.Name, e.Value) - set = true - break } } - } - if !set { - lines = append(lines, fmt.Sprintf("export %s=\"%s\"", env.Name, env.Value)) + if !set { + lines = append(lines, fmt.Sprintf("export %s=\"%s\"", env.Name, env.Value)) + } } return SvaeConfig(strings.Join(lines, "\n")) }