mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-09-22 08:30:42 +02:00
🎨 Init plugin system https://github.com/siyuan-note/siyuan/issues/8041
This commit is contained in:
parent
da31f5a7a6
commit
93dad2bfb2
1 changed files with 10 additions and 10 deletions
|
@ -391,34 +391,34 @@ func incPackageDownloads(repoURLHash, systemID string) {
|
|||
}
|
||||
|
||||
func installPackage(data []byte, installPath string) (err error) {
|
||||
dir := filepath.Join(util.TempDir, "bazaar", "package")
|
||||
if err = os.MkdirAll(dir, 0755); nil != err {
|
||||
tmpPackage := filepath.Join(util.TempDir, "bazaar", "package")
|
||||
if err = os.MkdirAll(tmpPackage, 0755); nil != err {
|
||||
return
|
||||
}
|
||||
name := gulu.Rand.String(7)
|
||||
tmp := filepath.Join(dir, name+".zip")
|
||||
tmp := filepath.Join(tmpPackage, name+".zip")
|
||||
if err = os.WriteFile(tmp, data, 0644); nil != err {
|
||||
return
|
||||
}
|
||||
|
||||
unzipPath := filepath.Join(dir, name)
|
||||
unzipPath := filepath.Join(tmpPackage, name)
|
||||
if err = gulu.Zip.Unzip(tmp, unzipPath); nil != err {
|
||||
logging.LogErrorf("write file [%s] failed: %s", installPath, err)
|
||||
err = errors.New("write file failed")
|
||||
return
|
||||
}
|
||||
|
||||
dirName := filepath.Base(installPath)
|
||||
dirs, err := os.ReadDir(unzipPath)
|
||||
if nil != err {
|
||||
return
|
||||
}
|
||||
for _, d := range dirs {
|
||||
if d.IsDir() && strings.Contains(d.Name(), "-") {
|
||||
dir = d.Name()
|
||||
break
|
||||
}
|
||||
|
||||
srcPath := unzipPath
|
||||
if 1 == len(dirs) && dirs[0].IsDir() && strings.HasPrefix(dirs[0].Name(), dirName+"-") {
|
||||
srcPath = filepath.Join(unzipPath, dirs[0].Name())
|
||||
}
|
||||
srcPath := filepath.Join(unzipPath, dir)
|
||||
|
||||
if err = filelock.Copy(srcPath, installPath); nil != err {
|
||||
return
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue