Browse Source

Only write config in environment-to-ini if there are changes (#15861)

* Only write config in environment-to-ini if there are changes

Only write the new config in environment-to-ini if there are changes or the
destination is not the same as the customconf.

Fix #15719
Fix #15857

Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: 6543 <6543@obermui.de>
tags/v1.15.0-rc1
zeripath 3 years ago
parent
commit
bbbe625343
No account linked to committer's email address
1 changed files with 11 additions and 3 deletions
  1. 11
    3
      contrib/environment-to-ini/environment-to-ini.go

+ 11
- 3
contrib/environment-to-ini/environment-to-ini.go View File

@@ -110,6 +110,8 @@ func runEnvironmentToIni(c *cli.Context) error {
}
cfg.NameMapper = ini.SnackCase

changed := false

prefix := c.String("prefix") + "__"

for _, kv := range os.Environ() {
@@ -143,15 +145,21 @@ func runEnvironmentToIni(c *cli.Context) error {
continue
}
}
oldValue := key.Value()
if !changed && oldValue != value {
changed = true
}
key.SetValue(value)
}
destination := c.String("out")
if len(destination) == 0 {
destination = setting.CustomConf
}
err = cfg.SaveTo(destination)
if err != nil {
return err
if destination != setting.CustomConf || changed {
err = cfg.SaveTo(destination)
if err != nil {
return err
}
}
if c.Bool("clear") {
for _, kv := range os.Environ() {

Loading…
Cancel
Save