1 Star 0 Fork 0

蒙蒙的男孩 / eosc

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
local.go 1.60 KB
一键复制 编辑 原始数据 按行查看 历史
蒙蒙的男孩 提交于 2024-01-10 13:49 . 重定义项目地址
package extends
import (
"errors"
"os"
"gitee.com/meng_mengs_boys/eosc/common/fileLocker"
"gitee.com/meng_mengs_boys/eosc"
)
const (
tarSuffix = ".tar.gz"
)
// LoadCheck 加载插件前检查
func LoadCheck(group, project, version string) error {
err := LocalCheck(group, project, version)
if err != ErrorExtenderNotFindLocal {
return errors.New("extender local check error: " + err.Error())
}
// 当本地不存在当前插件时,从插件市场中下载
path := LocalExtenderPath(group, project, version)
err = os.MkdirAll(path, 0666)
if err != nil {
return errors.New("create extender path " + path + " error: " + err.Error())
}
locker := fileLocker.NewLocker(LocalExtenderPath(group, project, version), 30, fileLocker.CliLocker)
err = locker.TryLock()
if err != nil {
return errors.New("locker error: " + err.Error())
}
err = DownLoadToRepositoryById(FormatDriverId(group, project, version))
locker.Unlock()
if err != nil {
return errors.New("download extender to local error: " + err.Error())
}
return nil
}
// LocalCheck 检查本地拓展文件是否存在
func LocalCheck(group, project, version string) error {
dir := LocalExtenderPath(group, project, version)
_, err := os.Stat(dir)
if err != nil {
if os.IsNotExist(err) {
tarPath := LocalExtendTarPath(group, project, version)
_, err = os.Stat(tarPath)
if err != nil {
return ErrorExtenderNotFindLocal
}
return eosc.Decompress(tarPath, dir)
}
return err
}
// check dir so num
fs, err := os.ReadDir(dir)
if err != nil {
return err
}
if len(fs) < 1 {
return ErrorExtenderNotFindLocal
}
return nil
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/meng_mengs_boys/eosc.git
git@gitee.com:meng_mengs_boys/eosc.git
meng_mengs_boys
eosc
eosc
v1.15.6

搜索帮助

344bd9b3 5694891 D2dac590 5694891