From 2cb79c00710402451da10724d5dcb46d6be0329e Mon Sep 17 00:00:00 2001 From: Daniele Rondina Date: Sun, 10 May 2020 20:01:27 +0200 Subject: [PATCH] cmd/build: Add support for multiple trees --- cmd/build.go | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/cmd/build.go b/cmd/build.go index f116bef2..c3e93b9b 100644 --- a/cmd/build.go +++ b/cmd/build.go @@ -62,7 +62,7 @@ var buildCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { clean := viper.GetBool("clean") - src := viper.GetString("tree") + treePaths := viper.GetStringSlice("tree") dst := viper.GetString("destination") concurrency := LuetCfg.GetGeneral().Concurrency backendType := viper.GetString("backend") @@ -105,14 +105,21 @@ var buildCmd = &cobra.Command{ generalRecipe := tree.NewCompilerRecipe(db) - Info("Loading", src) - Info("Building in", dst) - - err := generalRecipe.Load(src) - if err != nil { - Fatal("Error: " + err.Error()) + if len(treePaths) <= 0 { + Fatal("No tree path supplied!") } + for _, src := range treePaths { + Info("Loading tree", src) + + err := generalRecipe.Load(src) + if err != nil { + Fatal("Error: " + err.Error()) + } + } + + Info("Building in", dst) + stype := LuetCfg.Viper.GetString("solver.type") discount := LuetCfg.Viper.GetFloat64("solver.discount") rate := LuetCfg.Viper.GetFloat64("solver.rate") @@ -196,7 +203,7 @@ func init() { Fatal(err) } buildCmd.Flags().Bool("clean", true, "Build all packages without considering the packages present in the build directory") - buildCmd.Flags().String("tree", path, "Source luet tree") + buildCmd.Flags().StringSliceP("tree", "t", []string{}, "Path of the tree to use.") buildCmd.Flags().String("backend", "docker", "backend used (docker,img)") buildCmd.Flags().Bool("privileged", false, "Privileged (Keep permissions)") buildCmd.Flags().String("database", "memory", "database used for solving (memory,boltdb)")