12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package templatex
- import (
- "fmt"
- "io/ioutil"
- "os"
- "path/filepath"
- "github.com/logrusorgru/aurora"
- "github.com/tal-tech/go-zero/tools/goctl/util"
- )
- const goctlDir = ".goctl"
- func InitTemplates(category string, templates map[string]string) error {
- dir, err := getTemplateDir(category)
- if err != nil {
- return err
- }
- if err := util.MkdirIfNotExist(dir); err != nil {
- return err
- }
- for k, v := range templates {
- if err := createTemplate(filepath.Join(dir, k), v); err != nil {
- return err
- }
- }
- fmt.Printf("Templates are generated in %s, %s\n", aurora.Green(dir),
- aurora.Red("edit on your risk!"))
- return nil
- }
- func LoadTemplate(category, file, builtin string) (string, error) {
- dir, err := getTemplateDir(category)
- if err != nil {
- return "", err
- }
- file = filepath.Join(dir, file)
- if !util.FileExists(file) {
- return builtin, nil
- }
- content, err := ioutil.ReadFile(file)
- if err != nil {
- return "", err
- }
- return string(content), nil
- }
- func createTemplate(file, content string) error {
- if util.FileExists(file) {
- println(1)
- return nil
- }
- f, err := os.Create(file)
- if err != nil {
- return err
- }
- defer f.Close()
- _, err = f.WriteString(content)
- return err
- }
- func getTemplateDir(category string) (string, error) {
- home, err := os.UserHomeDir()
- if err != nil {
- return "", err
- }
- return filepath.Join(home, goctlDir, category), nil
- }
|