mirror of
https://github.com/Monibuca/plugin-ffmpeg.git
synced 2025-09-27 05:06:07 +08:00
更新 ffmpeg 库搜索范围
This commit is contained in:
42
main.go
42
main.go
@@ -5,6 +5,7 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"regexp"
|
"regexp"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/dwdcth/ffmpeg-go/v6/ffcommon"
|
"github.com/dwdcth/ffmpeg-go/v6/ffcommon"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
@@ -54,7 +55,7 @@ func SetAvLib() error {
|
|||||||
searchDirs = append(searchDirs, ".", "/usr/local/lib", "/usr/lib", "/usr/lib/x86_64-linux-gnu")
|
searchDirs = append(searchDirs, ".", "/usr/local/lib", "/usr/lib", "/usr/lib/x86_64-linux-gnu")
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, dir := range searchDirs {
|
for i, dir := range searchDirs {
|
||||||
var founds int
|
var founds int
|
||||||
for k, f := range fnMap {
|
for k, f := range fnMap {
|
||||||
var exp *regexp.Regexp
|
var exp *regexp.Regexp
|
||||||
@@ -66,19 +67,38 @@ func SetAvLib() error {
|
|||||||
default:
|
default:
|
||||||
exp = regexp.MustCompile(k + `(\.\d+)?\.so`)
|
exp = regexp.MustCompile(k + `(\.\d+)?\.so`)
|
||||||
}
|
}
|
||||||
filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
|
if i == 0 {
|
||||||
FFmpegPlugin.Debug("search lib", zap.String("path", path))
|
filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
|
||||||
if err != nil {
|
if strings.HasPrefix(path, ".git") {
|
||||||
FFmpegPlugin.Error("search lib error", zap.Error(err))
|
return nil
|
||||||
|
}
|
||||||
|
FFmpegPlugin.Debug("search lib", zap.String("path", path))
|
||||||
|
if err != nil {
|
||||||
|
FFmpegPlugin.Error("search lib error", zap.Error(err))
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if !info.IsDir() && exp.MatchString(info.Name()) {
|
||||||
|
FFmpegPlugin.Info("load lib", zap.String("path", path))
|
||||||
|
f(path)
|
||||||
|
founds++
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
// 遍历一层目录
|
||||||
|
files, err := os.ReadDir(dir)
|
||||||
|
if err != nil {
|
||||||
|
FFmpegPlugin.Error("read dir error", zap.Error(err))
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
if !info.IsDir() && exp.MatchString(info.Name()) {
|
for _, file := range files {
|
||||||
FFmpegPlugin.Info("load lib", zap.String("path", path))
|
if !file.IsDir() && exp.MatchString(file.Name()) {
|
||||||
f(path)
|
FFmpegPlugin.Info("load lib", zap.String("path", filepath.Join(dir, file.Name())))
|
||||||
founds++
|
f(filepath.Join(dir, file.Name()))
|
||||||
|
founds++
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return nil
|
}
|
||||||
})
|
|
||||||
}
|
}
|
||||||
if founds == libNum {
|
if founds == libNum {
|
||||||
return nil
|
return nil
|
||||||
|
Reference in New Issue
Block a user