github.com/robgonnella/ardi/v2@v2.4.5-0.20230102052001-11a49de978c3/commands/install.go (about) 1 package commands 2 3 import ( 4 "fmt" 5 6 "github.com/robgonnella/ardi/v2/util" 7 "github.com/spf13/cobra" 8 ) 9 10 func getInstallCmd(env *CommandEnv) *cobra.Command { 11 installCmd := &cobra.Command{ 12 Use: "install", 13 Short: "Install all project dependencies", 14 Long: "\nInstall all project dependencies", 15 RunE: func(cmd *cobra.Command, args []string) error { 16 if err := requireProjectInit(); err != nil { 17 return err 18 } 19 boardURLs := env.ArdiCore.CliConfig.Config.BoardManager.AdditionalUrls 20 for _, url := range env.ArdiCore.Config.GetBoardURLS() { 21 if !util.ArrayContains(boardURLs, url) { 22 env.Logger.WithField("board-url", url).Info("Adding board url") 23 if err := env.ArdiCore.CliConfig.AddBoardURL(url); err != nil { 24 return err 25 } 26 } 27 } 28 for plat, vers := range env.ArdiCore.Config.GetPlatforms() { 29 _, _, err := env.ArdiCore.Platform.Add(fmt.Sprintf("%s@%s", plat, vers)) 30 if err != nil { 31 return err 32 } 33 } 34 for lib, vers := range env.ArdiCore.Config.GetLibraries() { 35 _, _, err := env.ArdiCore.Lib.Add(fmt.Sprintf("%s@%s", lib, vers)) 36 if err != nil { 37 return err 38 } 39 } 40 return nil 41 }, 42 } 43 return installCmd 44 }