Support compression and checksum for trees

Fixes #33 #34 #35
This commit is contained in:
Ettore Di Giacinto
2020-01-28 17:46:32 +01:00
parent 7ad767a81b
commit c6fe34b059
5 changed files with 114 additions and 27 deletions

View File

@@ -17,6 +17,7 @@ package cmd
import (
"os"
"github.com/mudler/luet/pkg/compiler"
installer "github.com/mudler/luet/pkg/installer"
. "github.com/mudler/luet/pkg/logger"
@@ -38,6 +39,8 @@ var createrepoCmd = &cobra.Command{
viper.BindPFlag("descr", cmd.Flags().Lookup("descr"))
viper.BindPFlag("urls", cmd.Flags().Lookup("urls"))
viper.BindPFlag("type", cmd.Flags().Lookup("type"))
viper.BindPFlag("tree-compression", cmd.Flags().Lookup("tree-compression"))
viper.BindPFlag("tree-path", cmd.Flags().Lookup("tree-path"))
viper.BindPFlag("reset-revision", cmd.Flags().Lookup("reset-revision"))
},
Run: func(cmd *cobra.Command, args []string) {
@@ -50,11 +53,21 @@ var createrepoCmd = &cobra.Command{
urls := viper.GetStringSlice("urls")
t := viper.GetString("type")
reset := viper.GetBool("reset-revision")
treetype := viper.GetString("tree-compression")
treepath := viper.GetString("tree-path")
repo, err := installer.GenerateRepository(name, descr, t, urls, 1, packages, tree, pkg.NewInMemoryDatabase(false))
if err != nil {
Fatal("Error: " + err.Error())
}
if treetype != "" {
repo.SetTreeCompressionType(compiler.CompressionImplementation(treetype))
}
if treepath != "" {
repo.SetTreePath(treepath)
}
err = repo.Write(dst, reset)
if err != nil {
Fatal("Error: " + err.Error())
@@ -76,5 +89,8 @@ func init() {
createrepoCmd.Flags().String("type", "disk", "Repository type (disk)")
createrepoCmd.Flags().Bool("reset-revision", false, "Reset repository revision.")
createrepoCmd.Flags().String("tree-compression", "none", "Compression alg: none, gzip")
createrepoCmd.Flags().String("tree-path", installer.TREE_TARBALL, "Repository tree filename")
RootCmd.AddCommand(createrepoCmd)
}