// ListTemplates lists all the Gauge templates available in GaugeTemplatesURL func ListTemplates() { templatesURL := config.GaugeTemplatesUrl() _, err := common.UrlExists(templatesURL) if err != nil { fmt.Printf("Gauge templates URL is not reachable: %s\n", err.Error()) os.Exit(1) } tempDir := common.GetTempDir() defer util.Remove(tempDir) templatesPage, err := common.Download(templatesURL, tempDir) if err != nil { fmt.Printf("Error occurred while downloading templates list: %s\n", err.Error()) os.Exit(1) } templatePageContents, err := common.ReadFileContents(templatesPage) if err != nil { fmt.Printf("Failed to read contents of file %s: %s\n", templatesPage, err.Error()) os.Exit(1) } templates := getTemplateNames(templatePageContents) for _, template := range templates { fmt.Println(template) } fmt.Println("\nRun `gauge --init <template_name>` to create a new Gauge project.") }
func getInstallDescription(plugin string) (*installDescription, installResult) { versionInstallDescriptionJSONFile := plugin + "-install.json" versionInstallDescriptionJSONUrl, result := constructPluginInstallJSONURL(plugin) if !result.Success { return nil, installError(fmt.Sprintf("Could not construct plugin install json file URL. %s", result.Error)) } tempDir := common.GetTempDir() defer common.Remove(tempDir) downloadedFile, downloadErr := common.Download(versionInstallDescriptionJSONUrl, tempDir) if downloadErr != nil { return nil, installError(fmt.Sprintf("Invalid plugin : Could not download %s file. %s", versionInstallDescriptionJSONFile, downloadErr)) } return getInstallDescriptionFromJSON(downloadedFile) }
// DownloadAndUnzip downloads the zip file from given download link and unzips it. // Returns the unzipped file path. func DownloadAndUnzip(downloadLink string, tempDir string) (string, error) { logger.Debug("Downloading => %s", downloadLink) downloadedFile, err := common.Download(downloadLink, tempDir) if err != nil { return "", fmt.Errorf("Could not download file %s: %s", downloadLink, err.Error()) } logger.Debug("Downloaded to %s", downloadedFile) unzippedPluginDir, err := common.UnzipArchive(downloadedFile, tempDir) if err != nil { return "", fmt.Errorf("Failed to Unzip file %s: %s", downloadedFile, err.Error()) } logger.Debug("Unzipped to => %s\n", unzippedPluginDir) return unzippedPluginDir, nil }