// genSource renders the given template to produce source code, which it writes // to the given directory and file. func genSource(dir, filename, templateSource string, args map[string]interface{}) { sourceCode := revel.ExecuteTemplate( template.Must(template.New("").Parse(templateSource)), args) // Create a fresh dir. tmpPath := path.Join(revel.AppPath, dir) err := os.RemoveAll(tmpPath) if err != nil { revel.ERROR.Println("Failed to remove dir:", err) } err = os.Mkdir(tmpPath, 0777) if err != nil { revel.ERROR.Fatalf("Failed to make tmp directory: %v", err) } // Create the file file, err := os.Create(path.Join(tmpPath, filename)) defer file.Close() if err != nil { revel.ERROR.Fatalf("Failed to create file: %v", err) } _, err = file.WriteString(sourceCode) if err != nil { revel.ERROR.Fatalf("Failed to write to file: %v", err) } }
// genSource renders the given template to produce source code, which it writes // to the given directory and file. func genSource(dir, filename, templateSource string, args map[string]interface{}) { sourceCode := revel.ExecuteTemplate( template.Must(template.New("").Parse(templateSource)), args) // Create a fresh dir. cleanSource(dir) tmpPath := path.Join(revel.BasePath, dir) err := os.Mkdir(tmpPath, 0777) if err != nil && !os.IsExist(err) { revel.ERROR.Fatalf("Failed to make '%v' directory: %v", dir, err) } // Create the file file, err := os.Create(path.Join(tmpPath, filename)) defer file.Close() if err != nil { revel.ERROR.Fatalf("Failed to create file: %v", err) } _, err = file.WriteString(sourceCode) if err != nil { revel.ERROR.Fatalf("Failed to write to file: %v", err) } }