Add default values for settings (#455)

* add default values for settings

* more default values

* more default settings and labels resource

* mv locale to options
This commit is contained in:
Lunny Xiao 2016-12-23 15:18:05 +08:00 committed by GitHub
parent ec1fe1183d
commit a822bba3e1
6 changed files with 154 additions and 24 deletions

View file

@ -843,6 +843,8 @@ func getRepoInitFile(tp, name string) ([]byte, error) {
return options.Gitignore(cleanedName) return options.Gitignore(cleanedName)
case "license": case "license":
return options.License(cleanedName) return options.License(cleanedName)
case "label":
return options.Labels(cleanedName)
default: default:
return []byte{}, fmt.Errorf("Invalid init file type") return []byte{}, fmt.Errorf("Invalid init file type")
} }

View file

@ -76,6 +76,11 @@ func License(name string) ([]byte, error) {
return fileFromDir(path.Join("license", name)) return fileFromDir(path.Join("license", name))
} }
// Labels eads the content of a specific labels from static or custom path.
func Labels(name string) ([]byte, error) {
return fileFromDir(path.Join("label", name))
}
// fileFromDir is a helper to read files from static or custom path. // fileFromDir is a helper to read files from static or custom path.
func fileFromDir(name string) ([]byte, error) { func fileFromDir(name string) ([]byte, error) {
customPath := path.Join(setting.CustomPath, "options", name) customPath := path.Join(setting.CustomPath, "options", name)

View file

@ -72,6 +72,11 @@ func License(name string) ([]byte, error) {
return fileFromDir(path.Join("license", name)) return fileFromDir(path.Join("license", name))
} }
// Labels eads the content of a specific labels from static or custom path.
func Labels(name string) ([]byte, error) {
return fileFromDir(path.Join("label", name))
}
// fileFromDir is a helper to read files from bindata or custom path. // fileFromDir is a helper to read files from bindata or custom path.
func fileFromDir(name string) ([]byte, error) { func fileFromDir(name string) ([]byte, error) {
customPath := path.Join(setting.CustomPath, "options", name) customPath := path.Join(setting.CustomPath, "options", name)

View file

@ -0,0 +1,10 @@
package setting
import (
"strings"
)
var (
defaultLangs = strings.Split("en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,ja-JP,es-ES,pt-BR,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ,sr-SP,sv-SE,ko-KR", ",")
defaultLangNames = strings.Split("English,简体中文,繁體中文(香港),繁體中文(台湾),Deutsch,Français,Nederlands,Latviešu,Русский,日本語,Español,Português do Brasil,Polski,български,Italiano,Suomalainen,Türkçe,čeština,Српски,Svenska,한국어", ",")
)

View file

@ -104,16 +104,21 @@ var (
UseTiDB bool UseTiDB bool
// Webhook settings // Webhook settings
Webhook struct { Webhook = struct {
QueueLength int QueueLength int
DeliverTimeout int DeliverTimeout int
SkipTLSVerify bool SkipTLSVerify bool
Types []string Types []string
PagingNum int PagingNum int
}{
QueueLength: 1000,
DeliverTimeout: 5,
SkipTLSVerify: false,
PagingNum: 10,
} }
// Repository settings // Repository settings
Repository struct { Repository = struct {
AnsiCharset string AnsiCharset string
ForcePrivate bool ForcePrivate bool
MaxCreationLimit int MaxCreationLimit int
@ -136,12 +141,44 @@ var (
FileMaxSize int64 FileMaxSize int64
MaxFiles int MaxFiles int
} `ini:"-"` } `ini:"-"`
}{
AnsiCharset: "",
ForcePrivate: false,
MaxCreationLimit: -1,
MirrorQueueLength: 1000,
PullRequestQueueLength: 1000,
PreferredLicenses: []string{"Apache License 2.0,MIT License"},
DisableHTTPGit: false,
// Repository editor settings
Editor: struct {
LineWrapExtensions []string
PreviewableFileModes []string
}{
LineWrapExtensions: strings.Split(".txt,.md,.markdown,.mdown,.mkd,", ","),
PreviewableFileModes: []string{"markdown"},
},
// Repository upload settings
Upload: struct {
Enabled bool
TempPath string
AllowedTypes []string `delim:"|"`
FileMaxSize int64
MaxFiles int
}{
Enabled: true,
TempPath: "data/tmp/uploads",
AllowedTypes: []string{},
FileMaxSize: 3,
MaxFiles: 5,
},
} }
RepoRootPath string RepoRootPath string
ScriptType string ScriptType = "bash"
// UI settings // UI settings
UI struct { UI = struct {
ExplorePagingNum int ExplorePagingNum int
IssuePagingNum int IssuePagingNum int
FeedMaxCommitNum int FeedMaxCommitNum int
@ -157,13 +194,38 @@ var (
User struct { User struct {
RepoPagingNum int RepoPagingNum int
} `ini:"ui.user"` } `ini:"ui.user"`
}{
ExplorePagingNum: 20,
IssuePagingNum: 10,
FeedMaxCommitNum: 5,
ThemeColorMetaTag: `#6cc644`,
MaxDisplayFileSize: 8388608,
Admin: struct {
UserPagingNum int
RepoPagingNum int
NoticePagingNum int
OrgPagingNum int
}{
UserPagingNum: 50,
RepoPagingNum: 50,
NoticePagingNum: 25,
OrgPagingNum: 50,
},
User: struct {
RepoPagingNum int
}{
RepoPagingNum: 15,
},
} }
// Markdown sttings // Markdown sttings
Markdown struct { Markdown = struct {
EnableHardLineBreak bool EnableHardLineBreak bool
CustomURLSchemes []string `ini:"CUSTOM_URL_SCHEMES"` CustomURLSchemes []string `ini:"CUSTOM_URL_SCHEMES"`
FileExtensions []string FileExtensions []string
}{
EnableHardLineBreak: false,
FileExtensions: strings.Split(".md,.markdown,.mdown,.mkd", ","),
} }
// Picture settings // Picture settings
@ -198,7 +260,7 @@ var (
CSRFCookieName = "_csrf" CSRFCookieName = "_csrf"
// Cron tasks // Cron tasks
Cron struct { Cron = struct {
UpdateMirror struct { UpdateMirror struct {
Enabled bool Enabled bool
RunAtStart bool RunAtStart bool
@ -216,10 +278,37 @@ var (
RunAtStart bool RunAtStart bool
Schedule string Schedule string
} `ini:"cron.check_repo_stats"` } `ini:"cron.check_repo_stats"`
}{
UpdateMirror: struct {
Enabled bool
RunAtStart bool
Schedule string
}{
Schedule: "@every 10m",
},
RepoHealthCheck: struct {
Enabled bool
RunAtStart bool
Schedule string
Timeout time.Duration
Args []string `delim:" "`
}{
Schedule: "@every 24h",
Timeout: 60 * time.Second,
Args: []string{},
},
CheckRepoStats: struct {
Enabled bool
RunAtStart bool
Schedule string
}{
RunAtStart: true,
Schedule: "@every 24h",
},
} }
// Git settings // Git settings
Git struct { Git = struct {
DisableDiffHighlight bool DisableDiffHighlight bool
MaxGitDiffLines int MaxGitDiffLines int
MaxGitDiffLineCharacters int MaxGitDiffLineCharacters int
@ -232,16 +321,39 @@ var (
Pull int Pull int
GC int `ini:"GC"` GC int `ini:"GC"`
} `ini:"git.timeout"` } `ini:"git.timeout"`
}{
DisableDiffHighlight: false,
MaxGitDiffLines: 1000,
MaxGitDiffLineCharacters: 500,
MaxGitDiffFiles: 100,
GCArgs: []string{},
Timeout: struct {
Migrate int
Mirror int
Clone int
Pull int
GC int `ini:"GC"`
}{
Migrate: 600,
Mirror: 300,
Clone: 300,
Pull: 300,
GC: 60,
},
} }
// Mirror settings // Mirror settings
Mirror struct { Mirror = struct {
DefaultInterval int DefaultInterval int
}{
DefaultInterval: 8,
} }
// API settings // API settings
API struct { API = struct {
MaxResponseItems int MaxResponseItems int
}{
MaxResponseItems: 50,
} }
// I18n settings // I18n settings
@ -470,11 +582,11 @@ please consider changing to GITEA_CUSTOM`)
} }
sec = Cfg.Section("security") sec = Cfg.Section("security")
InstallLock = sec.Key("INSTALL_LOCK").MustBool() InstallLock = sec.Key("INSTALL_LOCK").MustBool(false)
SecretKey = sec.Key("SECRET_KEY").String() SecretKey = sec.Key("SECRET_KEY").MustString("!#@FDEWREWR&*(")
LogInRememberDays = sec.Key("LOGIN_REMEMBER_DAYS").MustInt() LogInRememberDays = sec.Key("LOGIN_REMEMBER_DAYS").MustInt(7)
CookieUserName = sec.Key("COOKIE_USERNAME").String() CookieUserName = sec.Key("COOKIE_USERNAME").MustString("gitea_awesome")
CookieRememberName = sec.Key("COOKIE_REMEMBER_NAME").String() CookieRememberName = sec.Key("COOKIE_REMEMBER_NAME").MustString("gitea_incredible")
ReverseProxyAuthUser = sec.Key("REVERSE_PROXY_AUTHENTICATION_USER").MustString("X-WEBAUTH-USER") ReverseProxyAuthUser = sec.Key("REVERSE_PROXY_AUTHENTICATION_USER").MustString("X-WEBAUTH-USER")
sec = Cfg.Section("attachment") sec = Cfg.Section("attachment")
@ -597,21 +709,17 @@ please consider changing to GITEA_CUSTOM`)
Langs = Cfg.Section("i18n").Key("LANGS").Strings(",") Langs = Cfg.Section("i18n").Key("LANGS").Strings(",")
if len(Langs) == 0 { if len(Langs) == 0 {
Langs = []string{ Langs = defaultLangs
"en-US",
}
} }
Names = Cfg.Section("i18n").Key("NAMES").Strings(",") Names = Cfg.Section("i18n").Key("NAMES").Strings(",")
if len(Names) == 0 { if len(Names) == 0 {
Names = []string{ Names = defaultLangNames
"English",
}
} }
dateLangs = Cfg.Section("i18n.datelang").KeysHash() dateLangs = Cfg.Section("i18n.datelang").KeysHash()
ShowFooterBranding = Cfg.Section("other").Key("SHOW_FOOTER_BRANDING").MustBool() ShowFooterBranding = Cfg.Section("other").Key("SHOW_FOOTER_BRANDING").MustBool(false)
ShowFooterVersion = Cfg.Section("other").Key("SHOW_FOOTER_VERSION").MustBool() ShowFooterVersion = Cfg.Section("other").Key("SHOW_FOOTER_VERSION").MustBool(true)
ShowFooterTemplateLoadTime = Cfg.Section("other").Key("SHOW_FOOTER_TEMPLATE_LOAD_TIME").MustBool() ShowFooterTemplateLoadTime = Cfg.Section("other").Key("SHOW_FOOTER_TEMPLATE_LOAD_TIME").MustBool(true)
HasRobotsTxt = com.IsFile(path.Join(CustomPath, "robots.txt")) HasRobotsTxt = com.IsFile(path.Join(CustomPath, "robots.txt"))
} }
@ -738,7 +846,7 @@ func newSessionService() {
SessionConfig.ProviderConfig = strings.Trim(Cfg.Section("session").Key("PROVIDER_CONFIG").String(), "\" ") SessionConfig.ProviderConfig = strings.Trim(Cfg.Section("session").Key("PROVIDER_CONFIG").String(), "\" ")
SessionConfig.CookieName = Cfg.Section("session").Key("COOKIE_NAME").MustString("i_like_gogits") SessionConfig.CookieName = Cfg.Section("session").Key("COOKIE_NAME").MustString("i_like_gogits")
SessionConfig.CookiePath = AppSubURL SessionConfig.CookiePath = AppSubURL
SessionConfig.Secure = Cfg.Section("session").Key("COOKIE_SECURE").MustBool() SessionConfig.Secure = Cfg.Section("session").Key("COOKIE_SECURE").MustBool(false)
SessionConfig.Gclifetime = Cfg.Section("session").Key("GC_INTERVAL_TIME").MustInt64(86400) SessionConfig.Gclifetime = Cfg.Section("session").Key("GC_INTERVAL_TIME").MustInt64(86400)
SessionConfig.Maxlifetime = Cfg.Section("session").Key("SESSION_LIFE_TIME").MustInt64(86400) SessionConfig.Maxlifetime = Cfg.Section("session").Key("SESSION_LIFE_TIME").MustInt64(86400)