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 }