func addPluginToTheProject(pluginName string, pluginArgs map[string]string, manifest *manifest.Manifest) error { if !plugin.IsPluginInstalled(pluginName, pluginArgs["version"]) { logger.Log.Info("Plugin %s %s is not installed. Downloading the plugin.... \n", pluginName, pluginArgs["version"]) result := InstallPlugin(pluginName, pluginArgs["version"]) if !result.Success { logger.Log.Error(result.getMessage()) } } pd, err := plugin.GetPluginDescriptor(pluginName, pluginArgs["version"]) if err != nil { return err } if plugin.IsPluginAdded(manifest, pd) { logger.Log.Info("Plugin " + pd.Name + " is already added.") return nil } action := setupScope if err := plugin.SetEnvForPlugin(action, pd, manifest, pluginArgs); err != nil { return err } if _, err := plugin.StartPlugin(pd, action, true); err != nil { return err } manifest.Plugins = append(manifest.Plugins, pd.Id) return manifest.Save() }
// IsCompatiblePluginInstalled checks if a plugin compatible to gauge is installed // TODO: This always checks if latest installed version of a given plugin is compatible. This should also check for older versions. func IsCompatiblePluginInstalled(pluginName string, isRunner bool) bool { if isRunner { return isCompatibleLanguagePluginInstalled(pluginName) } pd, err := plugin.GetPluginDescriptor(pluginName, "") if err != nil { return false } return version.CheckCompatibility(version.CurrentGaugeVersion, &pd.GaugeVersionSupport) == nil }
func isCompatiblePluginInstalled(pluginName string, pluginVersion string, isRunner bool) bool { if isRunner { return IsCompatibleLanguagePluginInstalled(pluginName) } else { pd, err := plugin.GetPluginDescriptor(pluginName, pluginVersion) if err != nil { return false } err = version.CheckCompatibility(version.CurrentGaugeVersion, &pd.GaugeVersionSupport) if err != nil { return false } return true } }
func addPluginToTheProject(pluginName string, pluginArgs map[string]string, manifest *manifest.Manifest) error { if !plugin.IsPluginInstalled(pluginName, pluginArgs["version"]) { logger.Info("Plugin %s %s is not installed. Downloading the plugin.... \n", pluginName, pluginArgs["version"]) result := InstallPlugin(pluginName, pluginArgs["version"]) if !result.Success { logger.Error(result.getMessage()) } } pd, err := plugin.GetPluginDescriptor(pluginName, pluginArgs["version"]) if err != nil { return err } if plugin.IsPluginAdded(manifest, pd) { return fmt.Errorf("Plugin %s is already added.", pd.Name) } manifest.Plugins = append(manifest.Plugins, pd.Id) return manifest.Save() }