Don't store assets modified time into generated files (#18193)
This commit is contained in:
parent
21ed4fd8da
commit
a1c12fb0b3
11 changed files with 110 additions and 22 deletions
|
@ -7,4 +7,4 @@
|
|||
|
||||
package public
|
||||
|
||||
//go:generate go run -mod=vendor ../../build/generate-bindata.go ../../public public bindata.go
|
||||
//go:generate go run -mod=vendor ../../build/generate-bindata.go ../../public public bindata.go true
|
||||
|
|
|
@ -18,8 +18,14 @@ import (
|
|||
"time"
|
||||
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
"code.gitea.io/gitea/modules/timeutil"
|
||||
)
|
||||
|
||||
// GlobalModTime provide a gloabl mod time for embedded asset files
|
||||
func GlobalModTime(filename string) time.Time {
|
||||
return timeutil.GetExecutableModTime()
|
||||
}
|
||||
|
||||
func fileSystem(dir string) http.FileSystem {
|
||||
return Assets
|
||||
}
|
||||
|
|
|
@ -15,9 +15,11 @@ import (
|
|||
"path/filepath"
|
||||
"strings"
|
||||
texttmpl "text/template"
|
||||
"time"
|
||||
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/timeutil"
|
||||
"code.gitea.io/gitea/modules/util"
|
||||
)
|
||||
|
||||
|
@ -26,6 +28,11 @@ var (
|
|||
bodyTemplates = template.New("")
|
||||
)
|
||||
|
||||
// GlobalModTime provide a gloabl mod time for embedded asset files
|
||||
func GlobalModTime(filename string) time.Time {
|
||||
return timeutil.GetExecutableModTime()
|
||||
}
|
||||
|
||||
// GetAsset get a special asset, only for chi
|
||||
func GetAsset(name string) ([]byte, error) {
|
||||
bs, err := os.ReadFile(filepath.Join(setting.CustomPath, name))
|
||||
|
|
|
@ -7,4 +7,4 @@
|
|||
|
||||
package templates
|
||||
|
||||
//go:generate go run -mod=vendor ../../build/generate-bindata.go ../../templates templates bindata.go
|
||||
//go:generate go run -mod=vendor ../../build/generate-bindata.go ../../templates templates bindata.go true
|
||||
|
|
49
modules/timeutil/executable.go
Normal file
49
modules/timeutil/executable.go
Normal file
|
@ -0,0 +1,49 @@
|
|||
// Copyright 2022 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package timeutil
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
)
|
||||
|
||||
var executablModTime = time.Now()
|
||||
var executablModTimeOnce sync.Once
|
||||
|
||||
// GetExecutableModTime get executable file modified time of current process.
|
||||
func GetExecutableModTime() time.Time {
|
||||
executablModTimeOnce.Do(func() {
|
||||
exePath, err := os.Executable()
|
||||
if err != nil {
|
||||
log.Error("os.Executable: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
exePath, err = filepath.Abs(exePath)
|
||||
if err != nil {
|
||||
log.Error("filepath.Abs: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
exePath, err = filepath.EvalSymlinks(exePath)
|
||||
if err != nil {
|
||||
log.Error("filepath.EvalSymlinks: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
st, err := os.Stat(exePath)
|
||||
if err != nil {
|
||||
log.Error("os.Stat: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
executablModTime = st.ModTime()
|
||||
})
|
||||
return executablModTime
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue