🎨 清理未引用资源
支持跟随 assets 文件夹符号链接 Fix https://github.com/siyuan-note/siyuan/issues/5480
This commit is contained in:
parent
09dcdab51e
commit
a7b43cbd22
1 changed files with 34 additions and 5 deletions
|
@ -618,18 +618,26 @@ func UnusedAssets() (ret []string) {
|
|||
delete(assetsPathMap, toRemove)
|
||||
}
|
||||
|
||||
dataAssetsAbsPath, err := getDataAssetsAbsPath()
|
||||
if nil != err {
|
||||
return
|
||||
}
|
||||
|
||||
for _, assetAbsPath := range assetsPathMap {
|
||||
if _, ok := linkDestMap[assetAbsPath]; ok {
|
||||
continue
|
||||
}
|
||||
|
||||
var p string
|
||||
if strings.HasPrefix(filepath.Join(util.DataDir, "assets"), assetAbsPath) {
|
||||
if strings.HasPrefix(dataAssetsAbsPath, assetAbsPath) {
|
||||
p = assetAbsPath[strings.Index(assetAbsPath, "assets"):]
|
||||
} else {
|
||||
p = strings.TrimPrefix(assetAbsPath, util.DataDir)[1:]
|
||||
p = strings.TrimPrefix(assetAbsPath, filepath.Dir(dataAssetsAbsPath))
|
||||
}
|
||||
p = filepath.ToSlash(p)
|
||||
if strings.HasPrefix(p, "/") {
|
||||
p = p[1:]
|
||||
}
|
||||
ret = append(ret, p)
|
||||
}
|
||||
sort.Strings(ret)
|
||||
|
@ -737,10 +745,14 @@ func allAssetAbsPaths() (assetsAbsPathMap map[string]string, err error) {
|
|||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
// 全局 assets
|
||||
assets := filepath.Join(util.DataDir, "assets")
|
||||
filepath.Walk(assets, func(assetPath string, info fs.FileInfo, err error) error {
|
||||
if assets == assetPath {
|
||||
dataAssetsAbsPath, err := getDataAssetsAbsPath()
|
||||
if nil != err {
|
||||
return
|
||||
}
|
||||
filepath.Walk(dataAssetsAbsPath, func(assetPath string, info fs.FileInfo, err error) error {
|
||||
if dataAssetsAbsPath == assetPath {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -806,3 +818,20 @@ func copyAssetsToDataAssets(rootPath string) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func getDataAssetsAbsPath() (ret string, err error) {
|
||||
ret = filepath.Join(util.DataDir, "assets")
|
||||
stat, statErr := os.Lstat(ret)
|
||||
if nil != statErr {
|
||||
err = statErr
|
||||
return
|
||||
}
|
||||
if 0 != stat.Mode()&os.ModeSymlink {
|
||||
// 跟随符号链接 https://github.com/siyuan-note/siyuan/issues/5480
|
||||
ret, err = os.Readlink(ret)
|
||||
if nil != err {
|
||||
return
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue