Makes it possible to set the work path as a CLI option instead of relying on environment variables which are somewhat opaquetags/v1.21.12.1
| @@ -43,7 +43,7 @@ func runPR() { | |||||
| if err != nil { | if err != nil { | ||||
| log.Fatal(err) | log.Fatal(err) | ||||
| } | } | ||||
| setting.SetCustomPathAndConf("", "") | |||||
| setting.SetCustomPathAndConf("", "", "") | |||||
| setting.NewContext() | setting.NewContext() | ||||
| setting.RepoRootPath, err = ioutil.TempDir(os.TempDir(), "repos") | setting.RepoRootPath, err = ioutil.TempDir(os.TempDir(), "repos") | ||||
| @@ -25,8 +25,12 @@ All global options can be placed at the command level. | |||||
| - `--help`, `-h`: Show help text and exit. Optional. | - `--help`, `-h`: Show help text and exit. Optional. | ||||
| - `--version`, `-v`: Show version and exit. Optional. (example: `Gitea version 1.1.0+218-g7b907ed built with: bindata, sqlite`). | - `--version`, `-v`: Show version and exit. Optional. (example: `Gitea version 1.1.0+218-g7b907ed built with: bindata, sqlite`). | ||||
| - `--custom-path path`, `-C path`: Location of the Gitea custom folder. Optional. (default: $PWD/custom). | |||||
| - `--config path`, `-c path`: Gitea configuration file path. Optional. (default: custom/conf/app.ini). | |||||
| - `--custom-path path`, `-C path`: Location of the Gitea custom folder. Optional. (default: `AppWorkPath`/custom or `$GITEA_CUSTOM`). | |||||
| - `--config path`, `-c path`: Gitea configuration file path. Optional. (default: `custom`/conf/app.ini). | |||||
| - `--work-path path`, `-w path`: Gitea `AppWorkPath`. Optional. (default: LOCATION_OF_GITEA_BINARY or `$GITEA_WORK_DIR`) | |||||
| NB: The defaults custom-path, config and work-path can also be | |||||
| changed at build time (if preferred). | |||||
| ### Commands | ### Commands | ||||
| @@ -118,7 +118,7 @@ func initIntegrationTest() { | |||||
| setting.CustomConf = giteaConf | setting.CustomConf = giteaConf | ||||
| } | } | ||||
| setting.SetCustomPathAndConf("", "") | |||||
| setting.SetCustomPathAndConf("", "", "") | |||||
| setting.NewContext() | setting.NewContext() | ||||
| setting.CheckLFSVersion() | setting.CheckLFSVersion() | ||||
| models.LoadConfigs() | models.LoadConfigs() | ||||
| @@ -68,7 +68,7 @@ arguments - which can alternatively be run by running the subcommand web.` | |||||
| // Now adjust these commands to add our global configuration options | // Now adjust these commands to add our global configuration options | ||||
| // First calculate the default paths and set the AppHelpTemplates in this context | // First calculate the default paths and set the AppHelpTemplates in this context | ||||
| setting.SetCustomPathAndConf("", "") | |||||
| setting.SetCustomPathAndConf("", "", "") | |||||
| setAppHelpTemplates() | setAppHelpTemplates() | ||||
| // default configuration flags | // default configuration flags | ||||
| @@ -84,6 +84,11 @@ arguments - which can alternatively be run by running the subcommand web.` | |||||
| Usage: "Custom configuration file path", | Usage: "Custom configuration file path", | ||||
| }, | }, | ||||
| cli.VersionFlag, | cli.VersionFlag, | ||||
| cli.StringFlag{ | |||||
| Name: "work-path, w", | |||||
| Value: setting.AppWorkPath, | |||||
| Usage: "Set the gitea working path", | |||||
| }, | |||||
| } | } | ||||
| // Set the default to be equivalent to cmdWeb and add the default flags | // Set the default to be equivalent to cmdWeb and add the default flags | ||||
| @@ -114,10 +119,11 @@ func setFlagsAndBeforeOnSubcommands(command *cli.Command, defaultFlags []cli.Fla | |||||
| func establishCustomPath(ctx *cli.Context) error { | func establishCustomPath(ctx *cli.Context) error { | ||||
| var providedCustom string | var providedCustom string | ||||
| var providedConf string | var providedConf string | ||||
| var providedWorkPath string | |||||
| currentCtx := ctx | currentCtx := ctx | ||||
| for { | for { | ||||
| if len(providedCustom) != 0 && len(providedConf) != 0 { | |||||
| if len(providedCustom) != 0 && len(providedConf) != 0 && len(providedWorkPath) != 0 { | |||||
| break | break | ||||
| } | } | ||||
| if currentCtx == nil { | if currentCtx == nil { | ||||
| @@ -129,10 +135,13 @@ func establishCustomPath(ctx *cli.Context) error { | |||||
| if currentCtx.IsSet("config") && len(providedConf) == 0 { | if currentCtx.IsSet("config") && len(providedConf) == 0 { | ||||
| providedConf = currentCtx.String("config") | providedConf = currentCtx.String("config") | ||||
| } | } | ||||
| if currentCtx.IsSet("work-path") && len(providedWorkPath) == 0 { | |||||
| providedWorkPath = currentCtx.String("work-path") | |||||
| } | |||||
| currentCtx = currentCtx.Parent() | currentCtx = currentCtx.Parent() | ||||
| } | } | ||||
| setting.SetCustomPathAndConf(providedCustom, providedConf) | |||||
| setting.SetCustomPathAndConf(providedCustom, providedConf, providedWorkPath) | |||||
| setAppHelpTemplates() | setAppHelpTemplates() | ||||
| @@ -14,7 +14,7 @@ import ( | |||||
| ) | ) | ||||
| func init() { | func init() { | ||||
| setting.SetCustomPathAndConf("", "") | |||||
| setting.SetCustomPathAndConf("", "", "") | |||||
| setting.NewContext() | setting.NewContext() | ||||
| } | } | ||||
| @@ -479,7 +479,10 @@ func CheckLFSVersion() { | |||||
| // SetCustomPathAndConf will set CustomPath and CustomConf with reference to the | // SetCustomPathAndConf will set CustomPath and CustomConf with reference to the | ||||
| // GITEA_CUSTOM environment variable and with provided overrides before stepping | // GITEA_CUSTOM environment variable and with provided overrides before stepping | ||||
| // back to the default | // back to the default | ||||
| func SetCustomPathAndConf(providedCustom, providedConf string) { | |||||
| func SetCustomPathAndConf(providedCustom, providedConf, providedWorkPath string) { | |||||
| if len(providedWorkPath) != 0 { | |||||
| AppWorkPath = filepath.ToSlash(providedWorkPath) | |||||
| } | |||||
| if giteaCustom, ok := os.LookupEnv("GITEA_CUSTOM"); ok { | if giteaCustom, ok := os.LookupEnv("GITEA_CUSTOM"); ok { | ||||
| CustomPath = giteaCustom | CustomPath = giteaCustom | ||||
| } | } | ||||