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  }