This commit is contained in:
Daniel 2024-04-14 23:52:09 +08:00
parent 16c665bfa7
commit afeea6a80e
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
7 changed files with 42 additions and 61 deletions

View file

@ -17,7 +17,6 @@
package bazaar
import (
"errors"
"os"
"path/filepath"
"sort"
@ -184,14 +183,9 @@ func InstallIcon(repoURL, repoHash, installPath string, systemID string) error {
if nil != err {
return err
}
return installPackage(data, installPath)
return installPackage(data, installPath, repoURLHash)
}
func UninstallIcon(installPath string) error {
if err := os.RemoveAll(installPath); nil != err {
logging.LogErrorf("remove icon [%s] failed: %s", installPath, err)
return errors.New("remove community icon failed")
}
//logging.Logger.Infof("uninstalled icon [%s]", installPath)
return nil
return uninstallPackage(installPath)
}

View file

@ -19,6 +19,7 @@ package bazaar
import (
"bytes"
"errors"
"fmt"
"os"
"path/filepath"
"strings"
@ -588,7 +589,26 @@ func incPackageDownloads(repoURLHash, systemID string) {
}).Post(u)
}
func installPackage(data []byte, installPath string) (err error) {
func uninstallPackage(installPath string) (err error) {
if err = os.RemoveAll(installPath); nil != err {
logging.LogErrorf("remove [%s] failed: %s", installPath, err)
return fmt.Errorf("remove community package [%s] failed", filepath.Base(installPath))
}
packageCache.Flush()
return
}
func installPackage(data []byte, installPath, repoURLHash string) (err error) {
err = installPackage0(data, installPath)
if nil != err {
return
}
packageCache.Delete(strings.TrimPrefix(repoURLHash, "https://github.com/"))
return
}
func installPackage0(data []byte, installPath string) (err error) {
tmpPackage := filepath.Join(util.TempDir, "bazaar", "package")
if err = os.MkdirAll(tmpPackage, 0755); nil != err {
return

View file

@ -17,7 +17,6 @@
package bazaar
import (
"errors"
"os"
"path/filepath"
"runtime"
@ -27,7 +26,6 @@ import (
"github.com/dustin/go-humanize"
ants "github.com/panjf2000/ants/v2"
"github.com/siyuan-note/filelock"
"github.com/siyuan-note/httpclient"
"github.com/siyuan-note/logging"
"github.com/siyuan-note/siyuan/kernel/util"
@ -220,16 +218,11 @@ func InstallPlugin(repoURL, repoHash, installPath string, systemID string) error
if nil != err {
return err
}
return installPackage(data, installPath)
return installPackage(data, installPath, repoURLHash)
}
func UninstallPlugin(installPath string) error {
if err := filelock.Remove(installPath); nil != err {
logging.LogErrorf("remove plugin [%s] failed: %s", installPath, err)
return errors.New("remove community plugin failed")
}
//logging.Logger.Infof("uninstalled plugin [%s]", installPath)
return nil
return uninstallPackage(installPath)
}
func isIncompatiblePlugin(plugin *Plugin, currentFrontend string) bool {

View file

@ -17,7 +17,6 @@
package bazaar
import (
"errors"
"os"
"path/filepath"
"sort"
@ -27,7 +26,6 @@ import (
"github.com/dustin/go-humanize"
"github.com/panjf2000/ants/v2"
"github.com/siyuan-note/filelock"
"github.com/siyuan-note/httpclient"
"github.com/siyuan-note/logging"
"github.com/siyuan-note/siyuan/kernel/util"
@ -182,15 +180,11 @@ func InstallTemplate(repoURL, repoHash, installPath string, systemID string) err
if nil != err {
return err
}
return installPackage(data, installPath)
return installPackage(data, installPath, repoURLHash)
}
func UninstallTemplate(installPath string) error {
if err := filelock.Remove(installPath); nil != err {
logging.LogErrorf("remove template [%s] failed: %s", installPath, err)
return errors.New("remove community template failed")
}
return nil
return uninstallPackage(installPath)
}
func filterLegacyTemplates(templates []*Template) (ret []*Template) {

View file

@ -17,7 +17,6 @@
package bazaar
import (
"errors"
"os"
"path/filepath"
"sort"
@ -186,14 +185,9 @@ func InstallTheme(repoURL, repoHash, installPath string, systemID string) error
if nil != err {
return err
}
return installPackage(data, installPath)
return installPackage(data, installPath, repoURLHash)
}
func UninstallTheme(installPath string) error {
if err := os.RemoveAll(installPath); nil != err {
logging.LogErrorf("remove theme [%s] failed: %s", installPath, err)
return errors.New("remove community theme failed")
}
//logging.Logger.Infof("uninstalled theme [%s]", installPath)
return nil
return uninstallPackage(installPath)
}

View file

@ -17,7 +17,6 @@
package bazaar
import (
"errors"
"os"
"path/filepath"
"sort"
@ -26,7 +25,6 @@ import (
"github.com/dustin/go-humanize"
ants "github.com/panjf2000/ants/v2"
"github.com/siyuan-note/filelock"
"github.com/siyuan-note/httpclient"
"github.com/siyuan-note/logging"
"github.com/siyuan-note/siyuan/kernel/util"
@ -180,14 +178,9 @@ func InstallWidget(repoURL, repoHash, installPath string, systemID string) error
if nil != err {
return err
}
return installPackage(data, installPath)
return installPackage(data, installPath, repoURLHash)
}
func UninstallWidget(installPath string) error {
if err := filelock.Remove(installPath); nil != err {
logging.LogErrorf("remove widget [%s] failed: %s", installPath, err)
return errors.New("remove community widget failed")
}
//logging.Logger.Infof("uninstalled widget [%s]", installPath)
return nil
return uninstallPackage(installPath)
}