Use a variable but a function for IsProd because of a slight performance increment (#17368)

This commit is contained in:
Lunny Xiao 2021-10-20 22:37:19 +08:00 committed by GitHub
parent 0208ea0248
commit f494776931
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 19 additions and 22 deletions

View file

@ -80,7 +80,7 @@ func fail(userMessage, logMessage string, args ...interface{}) error {
fmt.Fprintln(os.Stderr, "Gitea:", userMessage) fmt.Fprintln(os.Stderr, "Gitea:", userMessage)
if len(logMessage) > 0 { if len(logMessage) > 0 {
if !setting.IsProd() { if !setting.IsProd {
fmt.Fprintf(os.Stderr, logMessage+"\n", args...) fmt.Fprintf(os.Stderr, logMessage+"\n", args...)
} }
} }

View file

@ -136,8 +136,8 @@ func NewTestEngine() (err error) {
} }
x.SetMapper(names.GonicMapper{}) x.SetMapper(names.GonicMapper{})
x.SetLogger(NewXORMLogger(!setting.IsProd())) x.SetLogger(NewXORMLogger(!setting.IsProd))
x.ShowSQL(!setting.IsProd()) x.ShowSQL(!setting.IsProd)
return syncTables() return syncTables()
} }

View file

@ -95,7 +95,7 @@ func (ctx *APIContext) Error(status int, title string, obj interface{}) {
if status == http.StatusInternalServerError { if status == http.StatusInternalServerError {
log.ErrorWithSkip(1, "%s: %s", title, message) log.ErrorWithSkip(1, "%s: %s", title, message)
if setting.IsProd() && !(ctx.User != nil && ctx.User.IsAdmin) { if setting.IsProd && !(ctx.User != nil && ctx.User.IsAdmin) {
message = "" message = ""
} }
} }
@ -112,7 +112,7 @@ func (ctx *APIContext) InternalServerError(err error) {
log.ErrorWithSkip(1, "InternalServerError: %v", err) log.ErrorWithSkip(1, "InternalServerError: %v", err)
var message string var message string
if !setting.IsProd() || (ctx.User != nil && ctx.User.IsAdmin) { if !setting.IsProd || (ctx.User != nil && ctx.User.IsAdmin) {
message = err.Error() message = err.Error()
} }

View file

@ -225,7 +225,7 @@ func (ctx *Context) NotFound(title string, err error) {
func (ctx *Context) notFoundInternal(title string, err error) { func (ctx *Context) notFoundInternal(title string, err error) {
if err != nil { if err != nil {
log.ErrorWithSkip(2, "%s: %v", title, err) log.ErrorWithSkip(2, "%s: %v", title, err)
if !setting.IsProd() { if !setting.IsProd {
ctx.Data["ErrorMsg"] = err ctx.Data["ErrorMsg"] = err
} }
} }
@ -261,7 +261,7 @@ func (ctx *Context) ServerError(title string, err error) {
func (ctx *Context) serverErrorInternal(title string, err error) { func (ctx *Context) serverErrorInternal(title string, err error) {
if err != nil { if err != nil {
log.ErrorWithSkip(2, "%s: %v", title, err) log.ErrorWithSkip(2, "%s: %v", title, err)
if !setting.IsProd() { if !setting.IsProd {
ctx.Data["ErrorMsg"] = err ctx.Data["ErrorMsg"] = err
} }
} }
@ -645,7 +645,7 @@ func Contexter() func(next http.Handler) http.Handler {
"CurrentURL": setting.AppSubURL + req.URL.RequestURI(), "CurrentURL": setting.AppSubURL + req.URL.RequestURI(),
"PageStartTime": startTime, "PageStartTime": startTime,
"Link": link, "Link": link,
"IsProd": setting.IsProd(), "IsProd": setting.IsProd,
}, },
} }
// PageData is passed by reference, and it will be rendered to `window.config.pageData` in `head.tmpl` for JavaScript modules // PageData is passed by reference, and it will be rendered to `window.config.pageData` in `head.tmpl` for JavaScript modules

View file

@ -18,7 +18,7 @@ import (
// AddCacheControlToHeader adds suitable cache-control headers to response // AddCacheControlToHeader adds suitable cache-control headers to response
func AddCacheControlToHeader(h http.Header, d time.Duration) { func AddCacheControlToHeader(h http.Header, d time.Duration) {
if setting.IsProd() { if setting.IsProd {
h.Set("Cache-Control", "private, max-age="+strconv.Itoa(int(d.Seconds()))) h.Set("Cache-Control", "private, max-age="+strconv.Itoa(int(d.Seconds())))
} else { } else {
h.Set("Cache-Control", "no-store") h.Set("Cache-Control", "no-store")

View file

@ -419,17 +419,13 @@ var (
PIDFile = "/run/gitea.pid" PIDFile = "/run/gitea.pid"
WritePIDFile bool WritePIDFile bool
RunMode string RunMode string
IsProd bool
RunUser string RunUser string
IsWindows bool IsWindows bool
HasRobotsTxt bool HasRobotsTxt bool
InternalToken string // internal access token InternalToken string // internal access token
) )
// IsProd if it's a production mode
func IsProd() bool {
return strings.EqualFold(RunMode, "prod")
}
func getAppPath() (string, error) { func getAppPath() (string, error) {
var appPath string var appPath string
var err error var err error
@ -906,6 +902,7 @@ func NewContext() {
// Please don't use root as a bandaid to "fix" something that is broken, instead the broken thing should instead be fixed properly. // Please don't use root as a bandaid to "fix" something that is broken, instead the broken thing should instead be fixed properly.
unsafeAllowRunAsRoot := Cfg.Section("").Key("I_AM_BEING_UNSAFE_RUNNING_AS_ROOT").MustBool(false) unsafeAllowRunAsRoot := Cfg.Section("").Key("I_AM_BEING_UNSAFE_RUNNING_AS_ROOT").MustBool(false)
RunMode = Cfg.Section("").Key("RUN_MODE").MustString("prod") RunMode = Cfg.Section("").Key("RUN_MODE").MustString("prod")
IsProd = strings.EqualFold(RunMode, "prod")
// Does not check run user when the install lock is off. // Does not check run user when the install lock is off.
if InstallLock { if InstallLock {
currentUser, match := IsRunUserMatchCurrentUser(RunUser) currentUser, match := IsRunUserMatchCurrentUser(RunUser)

View file

@ -91,7 +91,7 @@ func HTMLRenderer() *render.Render {
Funcs: NewFuncMap(), Funcs: NewFuncMap(),
Asset: GetAsset, Asset: GetAsset,
AssetNames: GetAssetNames, AssetNames: GetAssetNames,
IsDevelopment: !setting.IsProd(), IsDevelopment: !setting.IsProd,
DisableHTTPErrorRendering: true, DisableHTTPErrorRendering: true,
}) })
} }

View file

@ -62,7 +62,7 @@ func Middlewares() []func(http.Handler) http.Handler {
if err := recover(); err != nil { if err := recover(); err != nil {
combinedErr := fmt.Sprintf("PANIC: %v\n%s", err, string(log.Stack(2))) combinedErr := fmt.Sprintf("PANIC: %v\n%s", err, string(log.Stack(2)))
log.Error("%v", combinedErr) log.Error("%v", combinedErr)
if setting.IsProd() { if setting.IsProd {
http.Error(resp, http.StatusText(500), 500) http.Error(resp, http.StatusText(500), 500)
} else { } else {
http.Error(resp, combinedErr, 500) http.Error(resp, combinedErr, 500)

View file

@ -40,7 +40,7 @@ func installRecovery() func(next http.Handler) http.Handler {
if err := recover(); err != nil { if err := recover(); err != nil {
combinedErr := fmt.Sprintf("PANIC: %v\n%s", err, string(log.Stack(2))) combinedErr := fmt.Sprintf("PANIC: %v\n%s", err, string(log.Stack(2)))
log.Error(combinedErr) log.Error(combinedErr)
if setting.IsProd() { if setting.IsProd {
http.Error(w, http.StatusText(500), 500) http.Error(w, http.StatusText(500), 500)
} else { } else {
http.Error(w, combinedErr, 500) http.Error(w, combinedErr, 500)
@ -63,7 +63,7 @@ func installRecovery() func(next http.Handler) http.Handler {
w.Header().Set(`X-Frame-Options`, setting.CORSConfig.XFrameOptions) w.Header().Set(`X-Frame-Options`, setting.CORSConfig.XFrameOptions)
if !setting.IsProd() { if !setting.IsProd {
store["ErrorMsg"] = combinedErr store["ErrorMsg"] = combinedErr
} }
err = rnd.HTML(w, 500, "status/500", templates.BaseVars().Merge(store)) err = rnd.HTML(w, 500, "status/500", templates.BaseVars().Merge(store))

View file

@ -131,7 +131,7 @@ func Recovery() func(next http.Handler) http.Handler {
sessionStore := session.GetSession(req) sessionStore := session.GetSession(req)
if sessionStore == nil { if sessionStore == nil {
if setting.IsProd() { if setting.IsProd {
http.Error(w, http.StatusText(500), 500) http.Error(w, http.StatusText(500), 500)
} else { } else {
http.Error(w, combinedErr, 500) http.Error(w, combinedErr, 500)
@ -164,7 +164,7 @@ func Recovery() func(next http.Handler) http.Handler {
w.Header().Set(`X-Frame-Options`, setting.CORSConfig.XFrameOptions) w.Header().Set(`X-Frame-Options`, setting.CORSConfig.XFrameOptions)
if !setting.IsProd() { if !setting.IsProd {
store["ErrorMsg"] = combinedErr store["ErrorMsg"] = combinedErr
} }
err = rnd.HTML(w, 500, "status/500", templates.BaseVars().Merge(store)) err = rnd.HTML(w, 500, "status/500", templates.BaseVars().Merge(store))

View file

@ -477,7 +477,7 @@ func RegisterRoutes(m *web.Route) {
m.Post("/action/{action}", user.Action) m.Post("/action/{action}", user.Action)
}, reqSignIn) }, reqSignIn)
if !setting.IsProd() { if !setting.IsProd {
m.Get("/template/*", dev.TemplatePreview) m.Get("/template/*", dev.TemplatePreview)
} }

View file

@ -64,7 +64,7 @@ func (s *SSPI) Init() error {
Funcs: templates.NewFuncMap(), Funcs: templates.NewFuncMap(),
Asset: templates.GetAsset, Asset: templates.GetAsset,
AssetNames: templates.GetAssetNames, AssetNames: templates.GetAssetNames,
IsDevelopment: !setting.IsProd(), IsDevelopment: !setting.IsProd,
}) })
return nil return nil
} }