|
|
@ -163,6 +163,13 @@ func WorkDir() (string, error) { |
|
|
|
return path.Dir(strings.Replace(execPath, "\\", "/", -1)), err |
|
|
|
return path.Dir(strings.Replace(execPath, "\\", "/", -1)), err |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func forcePathSeparator(path string) { |
|
|
|
|
|
|
|
if strings.Contains(path, "\\") { |
|
|
|
|
|
|
|
fmt.Println("Do not use '\\' or '\\\\' in paths, instead, please use '/' in all places") |
|
|
|
|
|
|
|
os.Exit(1) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// NewConfigContext initializes configuration context.
|
|
|
|
// NewConfigContext initializes configuration context.
|
|
|
|
// NOTE: do not print any log except error.
|
|
|
|
// NOTE: do not print any log except error.
|
|
|
|
func NewConfigContext() { |
|
|
|
func NewConfigContext() { |
|
|
@ -196,6 +203,7 @@ func NewConfigContext() { |
|
|
|
Cfg.NameMapper = ini.AllCapsUnderscore |
|
|
|
Cfg.NameMapper = ini.AllCapsUnderscore |
|
|
|
|
|
|
|
|
|
|
|
LogRootPath = Cfg.Section("log").Key("ROOT_PATH").MustString(path.Join(workDir, "log")) |
|
|
|
LogRootPath = Cfg.Section("log").Key("ROOT_PATH").MustString(path.Join(workDir, "log")) |
|
|
|
|
|
|
|
forcePathSeparator(LogRootPath) |
|
|
|
|
|
|
|
|
|
|
|
sec := Cfg.Section("server") |
|
|
|
sec := Cfg.Section("server") |
|
|
|
AppName = Cfg.Section("").Key("APP_NAME").MustString("Gogs: Go Git Service") |
|
|
|
AppName = Cfg.Section("").Key("APP_NAME").MustString("Gogs: Go Git Service") |
|
|
@ -287,18 +295,22 @@ func NewConfigContext() { |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|
log.Fatal(4, "Fail to get home directory: %v", err) |
|
|
|
log.Fatal(4, "Fail to get home directory: %v", err) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
homeDir = strings.Replace(homeDir, "\\", "/", -1) |
|
|
|
|
|
|
|
|
|
|
|
sec = Cfg.Section("repository") |
|
|
|
sec = Cfg.Section("repository") |
|
|
|
RepoRootPath = sec.Key("ROOT").MustString(filepath.Join(homeDir, "gogs-repositories")) |
|
|
|
RepoRootPath = sec.Key("ROOT").MustString(path.Join(homeDir, "gogs-repositories")) |
|
|
|
|
|
|
|
forcePathSeparator(RepoRootPath) |
|
|
|
if !filepath.IsAbs(RepoRootPath) { |
|
|
|
if !filepath.IsAbs(RepoRootPath) { |
|
|
|
RepoRootPath = filepath.Join(workDir, RepoRootPath) |
|
|
|
RepoRootPath = path.Join(workDir, RepoRootPath) |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
RepoRootPath = filepath.Clean(RepoRootPath) |
|
|
|
RepoRootPath = path.Clean(RepoRootPath) |
|
|
|
} |
|
|
|
} |
|
|
|
ScriptType = sec.Key("SCRIPT_TYPE").MustString("bash") |
|
|
|
ScriptType = sec.Key("SCRIPT_TYPE").MustString("bash") |
|
|
|
|
|
|
|
|
|
|
|
sec = Cfg.Section("picture") |
|
|
|
sec = Cfg.Section("picture") |
|
|
|
PictureService = sec.Key("SERVICE").In("server", []string{"server"}) |
|
|
|
PictureService = sec.Key("SERVICE").In("server", []string{"server"}) |
|
|
|
AvatarUploadPath = sec.Key("AVATAR_UPLOAD_PATH").MustString("data/avatars") |
|
|
|
AvatarUploadPath = sec.Key("AVATAR_UPLOAD_PATH").MustString("data/avatars") |
|
|
|
|
|
|
|
forcePathSeparator(AvatarUploadPath) |
|
|
|
if !filepath.IsAbs(AvatarUploadPath) { |
|
|
|
if !filepath.IsAbs(AvatarUploadPath) { |
|
|
|
AvatarUploadPath = path.Join(workDir, AvatarUploadPath) |
|
|
|
AvatarUploadPath = path.Join(workDir, AvatarUploadPath) |
|
|
|
} |
|
|
|
} |
|
|
|