github.com/markbates/grift@v1.5.0/cli/init.go (about) 1 package cli 2 3 import ( 4 "context" 5 "io/ioutil" 6 "log" 7 "os" 8 "path/filepath" 9 ) 10 11 func Init(ctx context.Context, args []string) error { 12 pwd, err := os.Getwd() 13 if err != nil { 14 return err 15 } 16 17 dir := filepath.Join(pwd, "grifts") 18 if err := os.MkdirAll(dir, 0766); err != nil { 19 return err 20 } 21 22 err = ioutil.WriteFile(filepath.Join(dir, "example.go"), []byte(initTmpl), 0644) 23 if err != nil { 24 log.Fatal(err) 25 } 26 return nil 27 } 28 29 var initTmpl = ` 30 package grifts 31 32 import ( 33 "fmt" 34 "os" 35 "strings" 36 37 . "github.com/markbates/grift/grift" 38 ) 39 40 var _ = Desc("hello", "Say Hello!") 41 var _ = Add("hello", func(c *Context) error { 42 fmt.Println("Hello World!") 43 return nil 44 }) 45 46 var _ = Namespace("env", func() { 47 Desc("print", "Prints out all of the ENV variables in your environment. Pass in the name of a particular ENV variable to print just that one out. (e.g. grift env:print GOPATH)") 48 Add("print", func(c *Context) error { 49 if len(c.Args) >= 1 { 50 for _, e := range c.Args { 51 fmt.Printf("%s=%s\n", e, os.Getenv(e)) 52 } 53 } else { 54 for _, e := range os.Environ() { 55 pair := strings.Split(e, "=") 56 fmt.Printf("%s=%s\n", pair[0], os.Getenv(pair[0])) 57 } 58 } 59 60 return nil 61 }) 62 }) 63 `