github.com/nxadm/ctwrapper@v0.5.3-0.20200107113753-fb73fb7c1f50/fs.go (about) 1 package main 2 3 import ( 4 "os" 5 "os/exec" 6 "path/filepath" 7 ) 8 9 func findConsulTemplate() (string, error) { 10 var executable string 11 switch { 12 // Look in current directory 13 case true: 14 cwd, err := os.Getwd() 15 if err == nil { 16 executable = cwd + "/consul-template" 17 if _, err := os.Stat(executable); err == nil { 18 return executable, nil 19 } 20 } else { 21 return "", err 22 } 23 fallthrough 24 // Look in Path 25 default: 26 return exec.LookPath("consul-template") 27 } 28 } 29 30 func findTemplates(dir, ext string) ([]string, error) { 31 var files []string 32 err := filepath.Walk(dir, func(path string, f os.FileInfo, err error) error { 33 if !f.IsDir() { 34 if filepath.Ext(path) == ext { 35 files = append(files, path) 36 } 37 } 38 return nil 39 }) 40 return files, err 41 }