|
|
@ -114,15 +114,24 @@ var ( |
|
|
|
ForcePrivate bool |
|
|
|
ForcePrivate bool |
|
|
|
MaxCreationLimit int |
|
|
|
MaxCreationLimit int |
|
|
|
PullRequestQueueLength int |
|
|
|
PullRequestQueueLength int |
|
|
|
} |
|
|
|
|
|
|
|
RepoRootPath string |
|
|
|
|
|
|
|
ScriptType string |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Repo editor settings
|
|
|
|
// Repository editor settings
|
|
|
|
Editor struct { |
|
|
|
Editor struct { |
|
|
|
LineWrapExtensions []string |
|
|
|
LineWrapExtensions []string |
|
|
|
PreviewTabApis []string |
|
|
|
PreviewableFileModes []string |
|
|
|
|
|
|
|
} `ini:"-"` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Repository upload settings
|
|
|
|
|
|
|
|
Upload struct { |
|
|
|
|
|
|
|
Enabled bool |
|
|
|
|
|
|
|
TempPath string |
|
|
|
|
|
|
|
AllowedTypes []string `delim:"|"` |
|
|
|
|
|
|
|
FileMaxSize int64 |
|
|
|
|
|
|
|
MaxFiles int |
|
|
|
|
|
|
|
} `ini:"-"` |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
RepoRootPath string |
|
|
|
|
|
|
|
ScriptType string |
|
|
|
|
|
|
|
|
|
|
|
// UI settings
|
|
|
|
// UI settings
|
|
|
|
UI struct { |
|
|
|
UI struct { |
|
|
@ -147,7 +156,7 @@ var ( |
|
|
|
Markdown struct { |
|
|
|
Markdown struct { |
|
|
|
EnableHardLineBreak bool |
|
|
|
EnableHardLineBreak bool |
|
|
|
CustomURLSchemes []string `ini:"CUSTOM_URL_SCHEMES"` |
|
|
|
CustomURLSchemes []string `ini:"CUSTOM_URL_SCHEMES"` |
|
|
|
MdFileExtensions []string |
|
|
|
FileExtensions []string |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Picture settings
|
|
|
|
// Picture settings
|
|
|
@ -169,13 +178,6 @@ var ( |
|
|
|
AttachmentMaxFiles int |
|
|
|
AttachmentMaxFiles int |
|
|
|
AttachmentEnabled bool |
|
|
|
AttachmentEnabled bool |
|
|
|
|
|
|
|
|
|
|
|
// Repo Upload settings
|
|
|
|
|
|
|
|
UploadTempPath string |
|
|
|
|
|
|
|
UploadAllowedTypes string |
|
|
|
|
|
|
|
UploadMaxSize int64 |
|
|
|
|
|
|
|
UploadMaxFiles int |
|
|
|
|
|
|
|
UploadEnabled bool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Time settings
|
|
|
|
// Time settings
|
|
|
|
TimeFormat string |
|
|
|
TimeFormat string |
|
|
|
|
|
|
|
|
|
|
@ -494,17 +496,15 @@ func NewContext() { |
|
|
|
ScriptType = sec.Key("SCRIPT_TYPE").MustString("bash") |
|
|
|
ScriptType = sec.Key("SCRIPT_TYPE").MustString("bash") |
|
|
|
if err = Cfg.Section("repository").MapTo(&Repository); err != nil { |
|
|
|
if err = Cfg.Section("repository").MapTo(&Repository); err != nil { |
|
|
|
log.Fatal(4, "Fail to map Repository settings: %v", err) |
|
|
|
log.Fatal(4, "Fail to map Repository settings: %v", err) |
|
|
|
|
|
|
|
} else if err = Cfg.Section("repository.editor").MapTo(&Repository.Editor); err != nil { |
|
|
|
|
|
|
|
log.Fatal(4, "Fail to map Repository.Editor settings: %v", err) |
|
|
|
|
|
|
|
} else if err = Cfg.Section("repository.upload").MapTo(&Repository.Upload); err != nil { |
|
|
|
|
|
|
|
log.Fatal(4, "Fail to map Repository.Upload settings: %v", err) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
sec = Cfg.Section("upload") |
|
|
|
if !filepath.IsAbs(Repository.Upload.TempPath) { |
|
|
|
UploadTempPath = sec.Key("UPLOAD_TEMP_PATH").MustString(path.Join(AppDataPath, "tmp/uploads")) |
|
|
|
Repository.Upload.TempPath = path.Join(workDir, Repository.Upload.TempPath) |
|
|
|
if !filepath.IsAbs(UploadTempPath) { |
|
|
|
|
|
|
|
UploadTempPath = path.Join(workDir, UploadTempPath) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
UploadAllowedTypes = strings.Replace(sec.Key("UPLOAD_ALLOWED_TYPES").MustString(""), "|", ",", -1) |
|
|
|
|
|
|
|
UploadMaxSize = sec.Key("UPLOAD_FILE_MAX_SIZE").MustInt64(32) |
|
|
|
|
|
|
|
UploadMaxFiles = sec.Key("UPLOAD_MAX_FILES").MustInt(10) |
|
|
|
|
|
|
|
UploadEnabled = sec.Key("ENABLE_UPLOADS").MustBool(true) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sec = Cfg.Section("picture") |
|
|
|
sec = Cfg.Section("picture") |
|
|
|
AvatarUploadPath = sec.Key("AVATAR_UPLOAD_PATH").MustString(path.Join(AppDataPath, "avatars")) |
|
|
|
AvatarUploadPath = sec.Key("AVATAR_UPLOAD_PATH").MustString(path.Join(AppDataPath, "avatars")) |
|
|
@ -553,11 +553,9 @@ func NewContext() { |
|
|
|
} else if err = Cfg.Section("git").MapTo(&Git); err != nil { |
|
|
|
} else if err = Cfg.Section("git").MapTo(&Git); err != nil { |
|
|
|
log.Fatal(4, "Fail to map Git settings: %v", err) |
|
|
|
log.Fatal(4, "Fail to map Git settings: %v", err) |
|
|
|
} else if err = Cfg.Section("mirror").MapTo(&Mirror); err != nil { |
|
|
|
} else if err = Cfg.Section("mirror").MapTo(&Mirror); err != nil { |
|
|
|
log.Fatal(4, "Fail to map API settings: %v", err) |
|
|
|
log.Fatal(4, "Fail to map Mirror settings: %v", err) |
|
|
|
} else if err = Cfg.Section("api").MapTo(&API); err != nil { |
|
|
|
} else if err = Cfg.Section("api").MapTo(&API); err != nil { |
|
|
|
log.Fatal(4, "Fail to map API settings: %v", err) |
|
|
|
log.Fatal(4, "Fail to map API settings: %v", err) |
|
|
|
} else if err = Cfg.Section("editor").MapTo(&Editor); err != nil { |
|
|
|
|
|
|
|
log.Fatal(4, "Fail to map Editor settings: %v", err) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if Mirror.DefaultInterval <= 0 { |
|
|
|
if Mirror.DefaultInterval <= 0 { |
|
|
@ -572,10 +570,6 @@ func NewContext() { |
|
|
|
ShowFooterVersion = Cfg.Section("other").Key("SHOW_FOOTER_VERSION").MustBool() |
|
|
|
ShowFooterVersion = Cfg.Section("other").Key("SHOW_FOOTER_VERSION").MustBool() |
|
|
|
|
|
|
|
|
|
|
|
HasRobotsTxt = com.IsFile(path.Join(CustomPath, "robots.txt")) |
|
|
|
HasRobotsTxt = com.IsFile(path.Join(CustomPath, "robots.txt")) |
|
|
|
|
|
|
|
|
|
|
|
Markdown.MdFileExtensions = Cfg.Section("markdown").Key("MD_FILE_EXTENSIONS").Strings(",") |
|
|
|
|
|
|
|
Editor.LineWrapExtensions = Cfg.Section("editor").Key("LINE_WRAP_EXTENSIONS").Strings(",") |
|
|
|
|
|
|
|
Editor.PreviewTabApis = Cfg.Section("editor").Key("PREVIEW_TAB_APIS").Strings(",") |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var Service struct { |
|
|
|
var Service struct { |
|
|
|