github.com/aca02djr/gb@v0.4.1/cmd/gb/doc.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  	"os/exec"
     7  	"path/filepath"
     8  
     9  	"github.com/constabulary/gb"
    10  	"github.com/constabulary/gb/cmd"
    11  )
    12  
    13  func init() {
    14  	registerCommand(&cmd.Command{
    15  		Name:      "doc",
    16  		UsageLine: `doc <pkg> <sym>[.<method>]`,
    17  		Short:     "show documentation for a package or symbol",
    18  		Long: `
    19  Doc shows documentation for a package or symbol.
    20  
    21  See 'go help doc'.
    22  `,
    23  		Run: func(ctx *gb.Context, args []string) error {
    24  			env := cmd.MergeEnv(os.Environ(), map[string]string{
    25  				"GOPATH": fmt.Sprintf("%s:%s", ctx.Projectdir(), filepath.Join(ctx.Projectdir(), "vendor")),
    26  			})
    27  			if len(args) == 0 {
    28  				args = append(args, ".")
    29  			}
    30  
    31  			cmd := exec.Command("godoc", args...)
    32  			cmd.Env = env
    33  			cmd.Stdout = os.Stdout
    34  			cmd.Stderr = os.Stderr
    35  			return cmd.Run()
    36  		},
    37  		SkipParseArgs: true,
    38  	})
    39  }