aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2023-07-18 01:56:06 +0800
committerGitHub <noreply@github.com>2023-07-17 17:56:06 +0000
commitd0a9456c4f7d9f851caf6765554858bd85ba94b9 (patch)
tree7cc5b4c99677722d03abff862024e382fc0433c6
parent29e959fd009cc05fee8182929c1ee4a92a73f2a0 (diff)
downloadgitea-d0a9456c4f7d9f851caf6765554858bd85ba94b9.tar.gz
gitea-d0a9456c4f7d9f851caf6765554858bd85ba94b9.zip
Make environment-to-ini work with INSTALL_LOCK=true (#25926)
Regression of #25648, fix #25924 Test: ```bash rm -f /tmp/example.ini /tmp/out.ini && \ echo "[security]" > /tmp/example.ini && \ echo "INSTALL_LOCK = true" >> /tmp/example.ini && \ GITEA__foo__bar=1 go run contrib/environment-to-ini/environment-to-ini.go --config=/tmp/example.ini --out=/tmp/out.ini && \ echo "==== example:" && \ cat /tmp/example.ini && \ echo "==== out:" && \ cat /tmp/out.ini ``` Output: ``` 2023/07/17 17:40:51 ...nvironment-to-ini.go:99:runEnvironmentToIni() [I] Settings saved to: "/tmp/out.ini" ==== example: [security] INSTALL_LOCK = true ==== out: [security] INSTALL_LOCK = true [foo] bar = 1 ```
-rw-r--r--contrib/environment-to-ini/environment-to-ini.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/contrib/environment-to-ini/environment-to-ini.go b/contrib/environment-to-ini/environment-to-ini.go
index e472384a95..fb5fb7bdad 100644
--- a/contrib/environment-to-ini/environment-to-ini.go
+++ b/contrib/environment-to-ini/environment-to-ini.go
@@ -75,6 +75,8 @@ func main() {
}
func runEnvironmentToIni(c *cli.Context) error {
+ // the config system may change the environment variables, so get a copy first, to be used later
+ env := append([]string{}, os.Environ()...)
setting.InitWorkPathAndCfgProvider(os.Getenv, setting.ArgWorkPathAndCustomConf{
WorkPath: c.String("work-path"),
CustomPath: c.String("custom-path"),
@@ -86,7 +88,7 @@ func runEnvironmentToIni(c *cli.Context) error {
log.Fatal("Failed to load custom conf '%s': %v", setting.CustomConf, err)
}
- changed := setting.EnvironmentToConfig(cfg, os.Environ())
+ changed := setting.EnvironmentToConfig(cfg, env)
// try to save the config file
destination := c.String("out")