Add work path CLI option (#6922)
Makes it possible to set the work path as a CLI option instead of relying on environment variables which are somewhat opaque
This commit is contained in:
parent
488d34691a
commit
e55c874dd2
6 changed files with 25 additions and 9 deletions
|
@ -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).
|
- `--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).
|
- `--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()
|
||||||
|
|
15
main.go
15
main.go
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue