github.com/octohelm/wagon@v0.0.0-20240308040401-88662650dc0b/cmd/wagon/get.go (about)

     1  package main
     2  
     3  import (
     4  	"os"
     5  
     6  	"github.com/innoai-tech/infra/pkg/cli"
     7  	"github.com/octohelm/cuemod/pkg/cuemod"
     8  	"github.com/octohelm/wagon/pkg/logutil"
     9  	"golang.org/x/net/context"
    10  )
    11  
    12  func init() {
    13  	cli.AddTo(App, &Get{})
    14  }
    15  
    16  type Get struct {
    17  	cli.C
    18  	logutil.Logger
    19  	GetMod
    20  }
    21  
    22  type GetMod struct {
    23  	Pkgs []string `arg:""`
    24  
    25  	// Update to latest
    26  	Update bool `flag:"update,omitempty" alias:"u"`
    27  
    28  	// declare language for generate. support values: go
    29  	Import string `flag:"import,omitempty" alias:"i"`
    30  }
    31  
    32  func (m *GetMod) Run(ctx context.Context) error {
    33  	cwd, _ := os.Getwd()
    34  
    35  	c := cuemod.ContextFor(cwd)
    36  
    37  	for i := range m.Pkgs {
    38  		p := m.Pkgs[i]
    39  
    40  		err := c.Get(
    41  			cuemod.WithOpts(ctx,
    42  				cuemod.OptUpgrade(m.Update),
    43  				cuemod.OptImport(m.Import),
    44  			),
    45  			p,
    46  		)
    47  		if err != nil {
    48  			return err
    49  		}
    50  	}
    51  
    52  	return nil
    53  }