diff --git a/cmd/build.go b/cmd/build.go index 83f25185..d5b882e0 100644 --- a/cmd/build.go +++ b/cmd/build.go @@ -43,6 +43,7 @@ var buildCmd = &cobra.Command{ viper.BindPFlag("database", cmd.Flags().Lookup("database")) viper.BindPFlag("revdeps", cmd.Flags().Lookup("revdeps")) viper.BindPFlag("all", cmd.Flags().Lookup("all")) + viper.BindPFlag("compression", cmd.Flags().Lookup("compression")) }, Run: func(cmd *cobra.Command, args []string) { @@ -54,6 +55,7 @@ var buildCmd = &cobra.Command{ revdeps := viper.GetBool("revdeps") all := viper.GetBool("all") databaseType := viper.GetString("database") + compressionType := viper.GetString("compression") compilerSpecs := compiler.NewLuetCompilationspecs() var compilerBackend compiler.CompilerBackend @@ -89,7 +91,8 @@ var buildCmd = &cobra.Command{ Fatal("Error: " + err.Error()) } luetCompiler := compiler.NewLuetCompiler(compilerBackend, generalRecipe.GetDatabase()) - + luetCompiler.SetConcurrency(concurrency) + luetCompiler.SetCompressionType(compiler.CompressionImplementation(compressionType)) if !all { for _, a := range args { decodepackage, err := regexp.Compile(`^([<>]?\~?=?)((([^\/]+)\/)?(?U)(\S+))(-(\d+(\.\d+)*[a-z]?(_(alpha|beta|pre|rc|p)\d*)*(-r\d+)?))?$`) @@ -125,10 +128,10 @@ var buildCmd = &cobra.Command{ var artifact []compiler.Artifact var errs []error if revdeps { - artifact, errs = luetCompiler.CompileWithReverseDeps(concurrency, privileged, compilerSpecs) + artifact, errs = luetCompiler.CompileWithReverseDeps(privileged, compilerSpecs) } else { - artifact, errs = luetCompiler.CompileParallel(concurrency, privileged, compilerSpecs) + artifact, errs = luetCompiler.CompileParallel(privileged, compilerSpecs) } if len(errs) != 0 { @@ -156,6 +159,7 @@ func init() { buildCmd.Flags().Bool("revdeps", false, "Build with revdeps") buildCmd.Flags().Bool("all", false, "Build all packages in the tree") buildCmd.Flags().String("destination", path, "Destination folder") + buildCmd.Flags().String("compression", "none", "Compression alg: none, gzip") RootCmd.AddCommand(buildCmd) } diff --git a/pkg/compiler/compiler.go b/pkg/compiler/compiler.go index c8464a1c..34d26994 100644 --- a/pkg/compiler/compiler.go +++ b/pkg/compiler/compiler.go @@ -65,6 +65,10 @@ func (cs *LuetCompiler) SetConcurrency(i int) { cs.Concurrency = i } +func (cs *LuetCompiler) SetCompressionType(t CompressionImplementation) { + cs.CompressionType = t +} + func (cs *LuetCompiler) compilerWorker(i int, wg *sync.WaitGroup, cspecs chan CompilationSpec, a *[]Artifact, m *sync.Mutex, concurrency int, keepPermissions bool, errors chan error) { defer wg.Done() diff --git a/pkg/compiler/interface.go b/pkg/compiler/interface.go index 259f427d..d4fff3ca 100644 --- a/pkg/compiler/interface.go +++ b/pkg/compiler/interface.go @@ -30,6 +30,7 @@ type Compiler interface { SetBackend(CompilerBackend) GetBackend() CompilerBackend + SetCompressionType(t CompressionImplementation) } type CompilerBackendOptions struct {