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  `