github.com/bingoohuang/pkger@v0.0.0-20210127185155-a71b9df4c4c7/cmd/pkger/cmds/info.go (about) 1 package cmds 2 3 import ( 4 "encoding/json" 5 "flag" 6 "os" 7 8 "github.com/bingoohuang/pkger" 9 ) 10 11 type infoCmd struct { 12 *flag.FlagSet 13 } 14 15 func (s *infoCmd) Name() string { 16 return s.Flags().Name() 17 } 18 19 func (r *infoCmd) Flags() *flag.FlagSet { 20 if r.FlagSet == nil { 21 r.FlagSet = flag.NewFlagSet("info", flag.ExitOnError) 22 } 23 return r.FlagSet 24 } 25 26 func (r *infoCmd) Exec(args []string) error { 27 if len(args) == 0 { 28 args = []string{"."} 29 } 30 for _, a := range args { 31 32 fi, err := pkger.Info(a) 33 if err != nil { 34 return err 35 } 36 37 enc := json.NewEncoder(os.Stdout) 38 enc.SetIndent("", " ") 39 if err := enc.Encode(fi); err != nil { 40 return err 41 } 42 } 43 44 return nil 45 }