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  }