// InitializeProject initializes a Gauge project with specified template func InitializeProject(templateName string) { wd, err := os.Getwd() if err != nil { logger.Fatalf("Failed to find working directory. %s", err.Error()) } config.ProjectRoot = wd exists, _ := common.UrlExists(getTemplateURL(templateName)) if exists { err = initializeTemplate(templateName) } else { err = createProjectTemplate(templateName) } if err != nil { logger.Fatalf("Failed to initialize project. %s", err.Error()) } logger.Info("Successfully initialized the project. Run specifications with \"gauge specs/\"\n") language := getTemplateLangauge(templateName) if !install.IsCompatiblePluginInstalled(language, true) { logger.Info("Compatible langauge plugin %s is not installed. Installing plugin...", language) install.HandleInstallResult(install.InstallPlugin(language, ""), language, true) } }
// 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.") }
// ListTemplates lists all the Gauge templates available in GaugeTemplatesURL func ListTemplates() { templatesURL := config.GaugeTemplatesUrl() _, err := common.UrlExists(templatesURL) if err != nil { logger.Fatalf("Gauge templates URL is not reachable: %s", err.Error()) } tempDir := common.GetTempDir() defer util.Remove(tempDir) templatesPage, err := util.Download(templatesURL, tempDir, "", true) if err != nil { util.Remove(tempDir) logger.Fatalf("Error occurred while downloading templates list: %s", err.Error()) } templatePageContents, err := common.ReadFileContents(templatesPage) if err != nil { util.Remove(tempDir) logger.Fatalf("Failed to read contents of file %s: %s", templatesPage, err.Error()) } templates := getTemplateNames(templatePageContents) for _, template := range templates { logger.Info(template) } logger.Info("\nRun `gauge --init <template_name>` to create a new Gauge project.") }
// InitializeProject initializes a Gauge project with specified template func InitializeProject(templateName string) { wd, err := os.Getwd() if err != nil { logger.Fatal("Failed to find working directory. %s", err.Error()) } config.ProjectRoot = wd exists, _ := common.UrlExists(getTemplateURL(templateName)) if exists { err = initializeTemplate(templateName) } else { err = createProjectTemplate(templateName) } if err != nil { logger.Fatal("Failed to initialize. %s", err.Error()) } logger.Info("\nSuccessfully initialized the project. Run specifications with \"gauge specs/\"") }