summaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2020-10-30 19:26:03 +0000
committerGitHub <noreply@github.com>2020-10-30 15:26:03 -0400
commitdd12384f224e98a130511ebc9ffcfb44ead0e736 (patch)
tree9c100624bdfce918f487ad14d6287acfd01d9aad /cmd
parent20a5eff3e81f17e3d5e5ccc1c1d0b982241ba9ad (diff)
downloadgitea-dd12384f224e98a130511ebc9ffcfb44ead0e736.tar.gz
gitea-dd12384f224e98a130511ebc9ffcfb44ead0e736.zip
Fix --port setting (#13288)
* Fix --port setting Unfortunately there was an error in #13195 which set the --port option before the settings were read. This PR fixes this by moving applying this option to after the the settings are read However, on looking further into this code I believe that the setPort code was slightly odd. Firstly, it may make sense to run the install page on a different temporary port to the full system and this should be possible with a --install-port option. Secondy, if the --port option is provided we should apply it to both otherwise there will be unusual behaviour on graceful restart Thirdly, the documentation for --port says that the setting is temporary - it should therefore not save its result to the configuration (This however, does mean that authorized_keys and internal links may not be correct. - I think we need to discuss this option further.) Fix #13277 Signed-off-by: Andrew Thornton <art27@cantab.net> * Update cmd/web.go * Apply suggestions from code review Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/web.go30
1 files changed, 22 insertions, 8 deletions
diff --git a/cmd/web.go b/cmd/web.go
index e16d1afb53..036f1a6d66 100644
--- a/cmd/web.go
+++ b/cmd/web.go
@@ -42,6 +42,11 @@ and it takes care of all the other things for you`,
Usage: "Temporary port number to prevent conflict",
},
cli.StringFlag{
+ Name: "install-port",
+ Value: "3000",
+ Usage: "Temporary port number to run the install page on to prevent conflict",
+ },
+ cli.StringFlag{
Name: "pid, P",
Value: setting.PIDFile,
Usage: "Custom pid file path",
@@ -116,16 +121,20 @@ func runWeb(ctx *cli.Context) error {
setting.WritePIDFile = true
}
- // Flag for port number in case first time run conflict.
- if ctx.IsSet("port") {
- if err := setPort(ctx.String("port")); err != nil {
- return err
- }
- }
-
// Perform pre-initialization
needsInstall := routers.PreInstallInit(graceful.GetManager().HammerContext())
if needsInstall {
+ // Flag for port number in case first time run conflict
+ if ctx.IsSet("port") {
+ if err := setPort(ctx.String("port")); err != nil {
+ return err
+ }
+ }
+ if ctx.IsSet("install-port") {
+ if err := setPort(ctx.String("install-port")); err != nil {
+ return err
+ }
+ }
m := routes.NewMacaron()
routes.RegisterInstallRoute(m)
err := listen(m, false)
@@ -152,6 +161,12 @@ func runWeb(ctx *cli.Context) error {
// Perform global initialization
routers.GlobalInit(graceful.GetManager().HammerContext())
+ // Override the provided port number within the configuration
+ if ctx.IsSet("port") {
+ if err := setPort(ctx.String("port")); err != nil {
+ return err
+ }
+ }
// Set up Macaron
m := routes.NewMacaron()
routes.RegisterRoutes(m)
@@ -190,7 +205,6 @@ func setPort(port string) error {
defaultLocalURL += ":" + setting.HTTPPort + "/"
cfg.Section("server").Key("LOCAL_ROOT_URL").SetValue(defaultLocalURL)
-
if err := cfg.SaveTo(setting.CustomConf); err != nil {
return fmt.Errorf("Error saving generated JWT Secret to custom config: %v", err)
}