Plugins: Update CLI check if plugin is already installed (#91213)
* check if plugin installed * undo remove initial vers check * still attempt deps
This commit is contained in:
@@ -117,8 +117,13 @@ func doInstallPlugin(ctx context.Context, pluginID, version string, o pluginInst
|
||||
|
||||
// If a version is specified, check if it is already installed
|
||||
if version != "" {
|
||||
if services.PluginVersionInstalled(pluginID, version, o.pluginDir) {
|
||||
if p, ok := services.PluginVersionInstalled(pluginID, version, o.pluginDir); ok {
|
||||
services.Logger.Successf("Plugin %s v%s already installed.", pluginID, version)
|
||||
for _, depP := range p.JSONData.Dependencies.Plugins {
|
||||
if err := doInstallPlugin(ctx, depP.ID, depP.Version, o, installing); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
@@ -133,13 +138,28 @@ func doInstallPlugin(ctx context.Context, pluginID, version string, o pluginInst
|
||||
|
||||
var archive *repo.PluginArchive
|
||||
var err error
|
||||
pluginZipURL := o.pluginURL
|
||||
if pluginZipURL != "" {
|
||||
if archive, err = repository.GetPluginArchiveByURL(ctx, pluginZipURL, compatOpts); err != nil {
|
||||
if o.pluginURL != "" {
|
||||
archive, err = repository.GetPluginArchiveByURL(ctx, o.pluginURL, compatOpts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
if archive, err = repository.GetPluginArchive(ctx, pluginID, version, compatOpts); err != nil {
|
||||
archiveInfo, err := repository.GetPluginArchiveInfo(ctx, pluginID, version, compatOpts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if p, ok := services.PluginVersionInstalled(pluginID, archiveInfo.Version, o.pluginDir); ok {
|
||||
services.Logger.Successf("Plugin %s v%s already installed.", pluginID, archiveInfo.Version)
|
||||
for _, depP := range p.JSONData.Dependencies.Plugins {
|
||||
if err = doInstallPlugin(ctx, depP.ID, depP.Version, o, installing); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
if archive, err = repository.GetPluginArchiveByURL(ctx, archiveInfo.URL, compatOpts); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user