github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/singletons/templates/code.go (about) 1 package templates 2 3 import ( 4 "os" 5 "path" 6 "path/filepath" 7 8 "gopkg.in/yaml.v3" 9 ) 10 11 type codeConfig struct { 12 Description string 13 } 14 15 func (t *templates) Function(language string) (map[string]TemplateInfo, error) { 16 return t.codeMap(path.Join(templateFunctionsFolder, language)) 17 } 18 19 func (t *templates) SmartOps(language string) (map[string]TemplateInfo, error) { 20 return t.codeMap(path.Join(templateSmartOpsFolder, language)) 21 } 22 23 func (t *templates) codeMap(templatePath string) (map[string]TemplateInfo, error) { 24 dirs, err := os.ReadDir(templatePath) 25 if err != nil { 26 return nil, err 27 } 28 29 templateMap := make(map[string]TemplateInfo, len(dirs)) 30 for _, dir := range dirs { 31 if dir.Name() == "common" { 32 continue 33 } 34 yamlData, err := os.ReadFile(path.Join(templatePath, dir.Name(), "config.yaml")) 35 if err != nil { 36 return nil, err 37 } 38 39 var config codeConfig 40 err = yaml.Unmarshal(yamlData, &config) 41 if err != nil { 42 return nil, err 43 } 44 45 templateMap[filepath.Base(dir.Name())] = TemplateInfo{ 46 HideURL: true, 47 URL: path.Join(templatePath, dir.Name()), 48 Description: config.Description, 49 } 50 } 51 52 return templateMap, nil 53 }