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  }