if err != nil {
log.Fatal(err)
}
- setting.SetCustomPathAndConf("", "")
+ setting.SetCustomPathAndConf("", "", "")
setting.NewContext()
setting.RepoRootPath, err = ioutil.TempDir(os.TempDir(), "repos")
- `--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`).
-- `--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
setting.CustomConf = giteaConf
}
- setting.SetCustomPathAndConf("", "")
+ setting.SetCustomPathAndConf("", "", "")
setting.NewContext()
setting.CheckLFSVersion()
models.LoadConfigs()
// Now adjust these commands to add our global configuration options
// First calculate the default paths and set the AppHelpTemplates in this context
- setting.SetCustomPathAndConf("", "")
+ setting.SetCustomPathAndConf("", "", "")
setAppHelpTemplates()
// default configuration flags
Usage: "Custom configuration file path",
},
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
func establishCustomPath(ctx *cli.Context) error {
var providedCustom string
var providedConf string
+ var providedWorkPath string
currentCtx := ctx
for {
- if len(providedCustom) != 0 && len(providedConf) != 0 {
+ if len(providedCustom) != 0 && len(providedConf) != 0 && len(providedWorkPath) != 0 {
break
}
if currentCtx == nil {
if currentCtx.IsSet("config") && len(providedConf) == 0 {
providedConf = currentCtx.String("config")
}
+ if currentCtx.IsSet("work-path") && len(providedWorkPath) == 0 {
+ providedWorkPath = currentCtx.String("work-path")
+ }
currentCtx = currentCtx.Parent()
}
- setting.SetCustomPathAndConf(providedCustom, providedConf)
+ setting.SetCustomPathAndConf(providedCustom, providedConf, providedWorkPath)
setAppHelpTemplates()
)
func init() {
- setting.SetCustomPathAndConf("", "")
+ setting.SetCustomPathAndConf("", "", "")
setting.NewContext()
}
// SetCustomPathAndConf will set CustomPath and CustomConf with reference to the
// GITEA_CUSTOM environment variable and with provided overrides before stepping
// 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 {
CustomPath = giteaCustom
}