// 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.") }
// 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 initializeTemplate(templateName string) error { tempDir := common.GetTempDir() defer util.Remove(tempDir) unzippedTemplate, err := util.DownloadAndUnzip(getTemplateURL(templateName), tempDir) if err != nil { return err } wd := config.ProjectRoot logger.Info("Copying Gauge template %s to current directory ...", templateName) filesAdded, err := common.MirrorDir(filepath.Join(unzippedTemplate, templateName), wd) if err != nil { return fmt.Errorf("Failed to copy Gauge template: %s", err.Error()) } metadataFile := filepath.Join(wd, metadataFileName) metadataContents, err := common.ReadFileContents(metadataFile) if err != nil { return fmt.Errorf("Failed to read file contents of %s: %s", metadataFile, err.Error()) } metadata := &templateMetadata{} err = json.Unmarshal([]byte(metadataContents), metadata) if err != nil { return err } if metadata.PostInstallCmd != "" { command := strings.Split(metadata.PostInstallCmd, " ") cmd, err := common.ExecuteSystemCommand(command, wd, os.Stdout, os.Stderr) cmd.Wait() if err != nil { for _, file := range filesAdded { pathSegments := strings.Split(file, string(filepath.Separator)) util.Remove(filepath.Join(wd, pathSegments[0])) } return fmt.Errorf("Failed to run post install commands: %s", err.Error()) } } util.Remove(metadataFile) return nil }
func main() { sourcePPT := "Template.pptx" tempFolder := "tmp" targetPPT := "new.pptx" newImage := "img.jpg" err := z.Unzip(getAbsolutePath(sourcePPT), getAbsolutePath(tempFolder)) if err != nil { fmt.Println("Error unziping : ", err) return } defer util.Remove(getAbsolutePath(tempFolder)) //duplicate slide newSlideName, err := openxml.DuplicateSlide(getAbsolutePath(tempFolder), templateSlideName) if err != nil { fmt.Println("Error while duplicationg slide : ", err) return } slidePath := filepath.Join(tempFolder, c.PPTFolder, c.SlideFolder, newSlideName) replacements := make([]m.SlideReplacement, 1) replacements = append(replacements, m.SlideReplacement{PlaceHolder: "#title#", Replacement: "This is replaced title"}) replacements = append(replacements, m.SlideReplacement{PlaceHolder: "#footer#", Replacement: "This is replaced footer"}) //replace text placeholders err = fo.ReplaceTextInFile(getAbsolutePath(slidePath), replacements) if err != nil { fmt.Println("Error while content replacing", err) return } targetImgPath := filepath.Join(tempFolder, c.PPTFolder, c.MediaFolder, templateImgName) //replace image placeholder err = fo.CopyFile(getAbsolutePath(newImage), getAbsolutePath(targetImgPath)) if err != nil { fmt.Println("Error while image replacing", err) return } err = z.Zipit(getAbsolutePath(tempFolder), getAbsolutePath(targetPPT)) if err != nil { fmt.Println("Error ziping : ", err) } }