func printVersion() { fmt.Printf("Gauge version: %s\n\n", version.FullVersion()) fmt.Println("Plugins\n-------") allPluginsWithVersion, err := plugin.GetAllInstalledPluginsWithVersion() if err != nil { fmt.Println("No plugins found") fmt.Println("Plugins can be installed with `gauge --install {plugin-name}`") os.Exit(0) } for _, pluginInfo := range allPluginsWithVersion { fmt.Printf("%s (%s)\n", pluginInfo.Name, filepath.Base(pluginInfo.Path)) } }
func checkPluginUpdates() []UpdateInfo { var pluginsToUpdate []UpdateInfo plugins, err := plugin.GetAllInstalledPluginsWithVersion() if err != nil { return pluginsToUpdate } for _, plugin := range plugins { desc, result := getInstallDescription(plugin.Name) if result.Error != nil { continue } pluginsToUpdate = append(pluginsToUpdate, createPluginUpdateDetail(plugin.Version.String(), *desc)...) } return pluginsToUpdate }
func printJSONVersion() { type pluginJSON struct { Name string `json:"name"` Version string `json:"version"` } type versionJSON struct { Version string `json:"version"` Plugins []*pluginJSON `json:"plugins"` } gaugeVersion := versionJSON{version.FullVersion(), make([]*pluginJSON, 0)} allPluginsWithVersion, err := plugin.GetAllInstalledPluginsWithVersion() for _, pluginInfo := range allPluginsWithVersion { gaugeVersion.Plugins = append(gaugeVersion.Plugins, &pluginJSON{pluginInfo.Name, filepath.Base(pluginInfo.Path)}) } b, err := json.MarshalIndent(gaugeVersion, "", " ") if err != nil { fmt.Println("error:", err) } fmt.Println(fmt.Sprintf("%s\n", string(b))) }