github.com/searchspring/haus@v0.1.8-0.20200414161854-a7ca8bb9ea93/main.go (about) 1 package main 2 3 import( 4 "log" 5 "fmt" 6 "flag" 7 "strings" 8 "path/filepath" 9 10 "github.com/searchspring/haus/fileutils" 11 "github.com/searchspring/haus/app" 12 ) 13 14 var configfile string 15 var path string 16 var branch string 17 var version bool 18 const ( 19 versioninfo = "v0.1.7" 20 ) 21 22 type vars map[string]string 23 var variables vars 24 25 func ( v *vars ) String() string { 26 return fmt.Sprintf("%s", *v) 27 } 28 29 func ( v *vars ) Set(value string) error { 30 keyval := strings.Split(value, "=") 31 (*v)[keyval[0]] = keyval[1] 32 return nil 33 } 34 35 func main(){ 36 variables = make(map[string]string) 37 flag.StringVar(&configfile, "config", "haus.yml", "YAML config file") 38 flag.StringVar(&path, "path", "./hauscfg", "Path to generate files in") 39 flag.StringVar(&branch, "branch", "master", "git branch for hausrepo") 40 flag.Var(&variables, "variables", "variables passed to templates") 41 flag.BoolVar(&version, "version",false,"haus version") 42 flag.Parse() 43 44 if version == true { 45 fmt.Printf("haus version %s\n", versioninfo) 46 return 47 } 48 49 abspath,err := filepath.Abs(path) 50 if err != nil { 51 log.Fatalf("\n%s",err) 52 } 53 54 config,err := haus.ReadConfig(configfile,"~/.hauscfg.yml", branch, abspath, variables) 55 if err != nil { 56 log.Fatalf("\n%s",err) 57 } 58 59 _,err = fileutils.CreatePath(config.Path) 60 if err != nil { 61 log.Fatalf("\n%s",err) 62 } 63 64 haus := haus.Haus{ 65 Config: *config, 66 } 67 err = haus.Run() 68 if err != nil { 69 log.Fatalf("\n%s",err) 70 } 71 } 72