@@ -14,7 +14,11 @@ import (
1414)
1515
1616// path hierarchy for finding systemd service templates
17- var rootPaths = []string {"~/.deisctl/units" , "/var/lib/deis/units" }
17+ var templatePaths = []string {
18+ os .Getenv ("DEISCTL_UNITS" ),
19+ "~/.deis/units" ,
20+ "/var/lib/deis/units" ,
21+ }
1822
1923// Units returns a list of units filtered by target
2024func (c * FleetClient ) Units (target string ) (units []string , err error ) {
@@ -109,22 +113,16 @@ func readTemplate(component string) (out []byte, err error) {
109113 templateName := "deis-" + component + ".service"
110114 var templateFile string
111115
112- // first look for unit files in GOPATH
113- if os .Getenv ("GOPATH" ) != "" {
114- filename := path .Join (os .Getenv ("GOPATH" ),
115- path .Join ("src" , "github.com" , "deis" , "deisctl" , "units" , templateName ))
116+ // look in $DEISCTL_UNITS env var, then the local and global root paths
117+ for _ , p := range templatePaths {
118+ if p == "" {
119+ continue
120+ }
121+ p , _ := ExpandUser (p )
122+ filename := path .Join (p , templateName )
116123 if _ , err := os .Stat (filename ); err == nil {
117124 templateFile = filename
118- }
119- } else {
120- // otherwise look in rootPaths hierarchy
121- for _ , rootPath := range rootPaths {
122- rootPath , _ := ExpandUser (rootPath )
123- filename := path .Join (rootPath , templateName )
124- if _ , err := os .Stat (filename ); err == nil {
125- templateFile = filename
126- break
127- }
125+ break
128126 }
129127 }
130128
0 commit comments