mirror of
https://github.com/mudler/luet.git
synced 2025-09-03 16:25:19 +00:00
cmd/create-repo: Add support for multiple trees
This commit is contained in:
@@ -50,7 +50,7 @@ var createrepoCmd = &cobra.Command{
|
|||||||
var err error
|
var err error
|
||||||
var repo installer.Repository
|
var repo installer.Repository
|
||||||
|
|
||||||
tree := viper.GetString("tree")
|
treePaths := viper.GetStringSlice("tree")
|
||||||
dst := viper.GetString("output")
|
dst := viper.GetString("output")
|
||||||
packages := viper.GetString("packages")
|
packages := viper.GetString("packages")
|
||||||
name := viper.GetString("name")
|
name := viper.GetString("name")
|
||||||
@@ -74,8 +74,8 @@ var createrepoCmd = &cobra.Command{
|
|||||||
Fatal("Error: " + err.Error())
|
Fatal("Error: " + err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
if tree == "" {
|
if len(treePaths) <= 0 {
|
||||||
tree = lrepo.TreePath
|
treePaths = []string{lrepo.TreePath}
|
||||||
}
|
}
|
||||||
|
|
||||||
if t == "" {
|
if t == "" {
|
||||||
@@ -87,12 +87,12 @@ var createrepoCmd = &cobra.Command{
|
|||||||
lrepo.Urls,
|
lrepo.Urls,
|
||||||
lrepo.Priority,
|
lrepo.Priority,
|
||||||
packages,
|
packages,
|
||||||
tree,
|
treePaths,
|
||||||
pkg.NewInMemoryDatabase(false))
|
pkg.NewInMemoryDatabase(false))
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
repo, err = installer.GenerateRepository(name, descr, t, urls, 1, packages,
|
repo, err = installer.GenerateRepository(name, descr, t, urls, 1, packages,
|
||||||
tree, pkg.NewInMemoryDatabase(false))
|
treePaths, pkg.NewInMemoryDatabase(false))
|
||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -131,7 +131,7 @@ func init() {
|
|||||||
Fatal(err)
|
Fatal(err)
|
||||||
}
|
}
|
||||||
createrepoCmd.Flags().String("packages", path, "Packages folder (output from build)")
|
createrepoCmd.Flags().String("packages", path, "Packages folder (output from build)")
|
||||||
createrepoCmd.Flags().String("tree", path, "Source luet tree")
|
createrepoCmd.Flags().StringSliceP("tree", "t", []string{}, "Path of the source trees to use.")
|
||||||
createrepoCmd.Flags().String("output", path, "Destination folder")
|
createrepoCmd.Flags().String("output", path, "Destination folder")
|
||||||
createrepoCmd.Flags().String("name", "luet", "Repository name")
|
createrepoCmd.Flags().String("name", "luet", "Repository name")
|
||||||
createrepoCmd.Flags().String("descr", "luet", "Repository description")
|
createrepoCmd.Flags().String("descr", "luet", "Repository description")
|
||||||
|
@@ -82,7 +82,7 @@ var _ = Describe("Installer", func() {
|
|||||||
Expect(helpers.Exists(spec.Rel("b-test-1.0.package.tar"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("b-test-1.0.package.tar"))).To(BeTrue())
|
||||||
Expect(helpers.Exists(spec.Rel("b-test-1.0.metadata.yaml"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("b-test-1.0.metadata.yaml"))).To(BeTrue())
|
||||||
|
|
||||||
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, "../../tests/fixtures/buildable", pkg.NewInMemoryDatabase(false))
|
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, []string{"../../tests/fixtures/buildable"}, pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(repo.GetName()).To(Equal("test"))
|
Expect(repo.GetName()).To(Equal("test"))
|
||||||
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
||||||
@@ -198,7 +198,7 @@ urls:
|
|||||||
Expect(helpers.Exists(spec.Rel("b-test-1.0.package.tar"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("b-test-1.0.package.tar"))).To(BeTrue())
|
||||||
Expect(helpers.Exists(spec.Rel("b-test-1.0.metadata.yaml"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("b-test-1.0.metadata.yaml"))).To(BeTrue())
|
||||||
|
|
||||||
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, "../../tests/fixtures/buildable", pkg.NewInMemoryDatabase(false))
|
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, []string{"../../tests/fixtures/buildable"}, pkg.NewInMemoryDatabase(false))
|
||||||
treeFile := NewDefaultTreeRepositoryFile()
|
treeFile := NewDefaultTreeRepositoryFile()
|
||||||
treeFile.SetCompressionType(compiler.None)
|
treeFile.SetCompressionType(compiler.None)
|
||||||
repo.SetRepositoryFile(REPOFILE_TREE_KEY, treeFile)
|
repo.SetRepositoryFile(REPOFILE_TREE_KEY, treeFile)
|
||||||
@@ -316,7 +316,7 @@ urls:
|
|||||||
Expect(helpers.Exists(spec.Rel("b-test-1.0.package.tar"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("b-test-1.0.package.tar"))).To(BeTrue())
|
||||||
Expect(helpers.Exists(spec.Rel("b-test-1.0.metadata.yaml"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("b-test-1.0.metadata.yaml"))).To(BeTrue())
|
||||||
|
|
||||||
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, "../../tests/fixtures/buildable", pkg.NewInMemoryDatabase(false))
|
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, []string{"../../tests/fixtures/buildable"}, pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(repo.GetName()).To(Equal("test"))
|
Expect(repo.GetName()).To(Equal("test"))
|
||||||
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
||||||
@@ -434,7 +434,7 @@ urls:
|
|||||||
Expect(helpers.Exists(spec.Rel("b-test-1.0.package.tar"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("b-test-1.0.package.tar"))).To(BeTrue())
|
||||||
Expect(helpers.Exists(spec.Rel("b-test-1.0.metadata.yaml"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("b-test-1.0.metadata.yaml"))).To(BeTrue())
|
||||||
|
|
||||||
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, "../../tests/fixtures/buildable", pkg.NewInMemoryDatabase(false))
|
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, []string{"../../tests/fixtures/buildable"}, pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(repo.GetName()).To(Equal("test"))
|
Expect(repo.GetName()).To(Equal("test"))
|
||||||
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
||||||
@@ -500,7 +500,7 @@ urls:
|
|||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(helpers.Exists(artifact.GetPath())).To(BeTrue())
|
Expect(helpers.Exists(artifact.GetPath())).To(BeTrue())
|
||||||
|
|
||||||
repo, err = GenerateRepository("test", "description", "disk", []string{tmpdir2}, 1, tmpdir2, "../../tests/fixtures/alpine", pkg.NewInMemoryDatabase(false))
|
repo, err = GenerateRepository("test", "description", "disk", []string{tmpdir2}, 1, tmpdir2, []string{"../../tests/fixtures/alpine"}, pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
err = repo.Write(tmpdir2, false)
|
err = repo.Write(tmpdir2, false)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
@@ -569,7 +569,7 @@ urls:
|
|||||||
|
|
||||||
Expect(errs).To(BeEmpty())
|
Expect(errs).To(BeEmpty())
|
||||||
|
|
||||||
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, "../../tests/fixtures/upgrade", pkg.NewInMemoryDatabase(false))
|
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, []string{"../../tests/fixtures/upgrade"}, pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(repo.GetName()).To(Equal("test"))
|
Expect(repo.GetName()).To(Equal("test"))
|
||||||
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
||||||
@@ -695,7 +695,7 @@ urls:
|
|||||||
_, errs = c2.CompileParallel(false, compiler.NewLuetCompilationspecs(spec2))
|
_, errs = c2.CompileParallel(false, compiler.NewLuetCompilationspecs(spec2))
|
||||||
Expect(errs).To(BeEmpty())
|
Expect(errs).To(BeEmpty())
|
||||||
|
|
||||||
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, "../../tests/fixtures/upgrade_old_repo", pkg.NewInMemoryDatabase(false))
|
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, []string{"../../tests/fixtures/upgrade_old_repo"}, pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(repo.GetName()).To(Equal("test"))
|
Expect(repo.GetName()).To(Equal("test"))
|
||||||
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
||||||
@@ -704,7 +704,7 @@ urls:
|
|||||||
err = repo.Write(tmpdir, false)
|
err = repo.Write(tmpdir, false)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
repoupgrade, err := GenerateRepository("test", "description", "disk", []string{tmpdirnewrepo}, 1, tmpdirnewrepo, "../../tests/fixtures/upgrade_new_repo", pkg.NewInMemoryDatabase(false))
|
repoupgrade, err := GenerateRepository("test", "description", "disk", []string{tmpdirnewrepo}, 1, tmpdirnewrepo, []string{"../../tests/fixtures/upgrade_new_repo"}, pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
err = repoupgrade.Write(tmpdirnewrepo, false)
|
err = repoupgrade.Write(tmpdirnewrepo, false)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
@@ -818,7 +818,7 @@ urls:
|
|||||||
|
|
||||||
Expect(errs).To(BeEmpty())
|
Expect(errs).To(BeEmpty())
|
||||||
|
|
||||||
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, "../../tests/fixtures/upgrade", pkg.NewInMemoryDatabase(false))
|
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, []string{"../../tests/fixtures/upgrade"}, pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(repo.GetName()).To(Equal("test"))
|
Expect(repo.GetName()).To(Equal("test"))
|
||||||
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
||||||
@@ -935,7 +935,7 @@ urls:
|
|||||||
|
|
||||||
Expect(errs).To(BeEmpty())
|
Expect(errs).To(BeEmpty())
|
||||||
|
|
||||||
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, "../../tests/fixtures/upgrade", pkg.NewInMemoryDatabase(false))
|
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, []string{"../../tests/fixtures/upgrade"}, pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(repo.GetName()).To(Equal("test"))
|
Expect(repo.GetName()).To(Equal("test"))
|
||||||
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
||||||
@@ -1037,7 +1037,7 @@ urls:
|
|||||||
|
|
||||||
Expect(errs).To(BeEmpty())
|
Expect(errs).To(BeEmpty())
|
||||||
|
|
||||||
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, "../../tests/fixtures/upgrade_old_repo", pkg.NewInMemoryDatabase(false))
|
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, []string{"../../tests/fixtures/upgrade_old_repo"}, pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(repo.GetName()).To(Equal("test"))
|
Expect(repo.GetName()).To(Equal("test"))
|
||||||
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
Expect(helpers.Exists(spec.Rel("repository.yaml"))).ToNot(BeTrue())
|
||||||
@@ -1123,7 +1123,7 @@ urls:
|
|||||||
|
|
||||||
Expect(errs).To(BeEmpty())
|
Expect(errs).To(BeEmpty())
|
||||||
|
|
||||||
repo, err = GenerateRepository("test", "description", "disk", []string{tmpdir2}, 1, tmpdir2, "../../tests/fixtures/upgrade_new_repo", pkg.NewInMemoryDatabase(false))
|
repo, err = GenerateRepository("test", "description", "disk", []string{tmpdir2}, 1, tmpdir2, []string{"../../tests/fixtures/upgrade_new_repo"}, pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(repo.GetName()).To(Equal("test"))
|
Expect(repo.GetName()).To(Equal("test"))
|
||||||
err = repo.Write(tmpdir2, false)
|
err = repo.Write(tmpdir2, false)
|
||||||
|
@@ -176,12 +176,15 @@ func (f *LuetRepositoryFile) GetChecksums() compiler.Checksums {
|
|||||||
return f.Checksums
|
return f.Checksums
|
||||||
}
|
}
|
||||||
|
|
||||||
func GenerateRepository(name, descr, t string, urls []string, priority int, src, treeDir string, db pkg.PackageDatabase) (Repository, error) {
|
func GenerateRepository(name, descr, t string, urls []string, priority int, src string, treesDir []string, db pkg.PackageDatabase) (Repository, error) {
|
||||||
|
|
||||||
tr := tree.NewInstallerRecipe(db)
|
tr := tree.NewInstallerRecipe(db)
|
||||||
err := tr.Load(treeDir)
|
|
||||||
if err != nil {
|
for _, treeDir := range treesDir {
|
||||||
return nil, err
|
err := tr.Load(treeDir)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
art, err := buildPackageIndex(src, tr.GetDatabase())
|
art, err := buildPackageIndex(src, tr.GetDatabase())
|
||||||
|
@@ -83,7 +83,7 @@ var _ = Describe("Repository", func() {
|
|||||||
Expect(helpers.Exists(spec.Rel("b-test-1.0.package.tar"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("b-test-1.0.package.tar"))).To(BeTrue())
|
||||||
Expect(helpers.Exists(spec.Rel("b-test-1.0.metadata.yaml"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("b-test-1.0.metadata.yaml"))).To(BeTrue())
|
||||||
|
|
||||||
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, "../../tests/fixtures/buildable", pkg.NewInMemoryDatabase(false))
|
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, []string{"../../tests/fixtures/buildable"}, pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(repo.GetName()).To(Equal("test"))
|
Expect(repo.GetName()).To(Equal("test"))
|
||||||
Expect(helpers.Exists(spec.Rel(REPOSITORY_SPECFILE))).ToNot(BeTrue())
|
Expect(helpers.Exists(spec.Rel(REPOSITORY_SPECFILE))).ToNot(BeTrue())
|
||||||
@@ -165,7 +165,7 @@ var _ = Describe("Repository", func() {
|
|||||||
Expect(helpers.Exists(spec2.Rel("alpine-seed-1.0.package.tar"))).To(BeTrue())
|
Expect(helpers.Exists(spec2.Rel("alpine-seed-1.0.package.tar"))).To(BeTrue())
|
||||||
Expect(helpers.Exists(spec2.Rel("alpine-seed-1.0.metadata.yaml"))).To(BeTrue())
|
Expect(helpers.Exists(spec2.Rel("alpine-seed-1.0.metadata.yaml"))).To(BeTrue())
|
||||||
|
|
||||||
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, "../../tests/fixtures/buildable", pkg.NewInMemoryDatabase(false))
|
repo, err := GenerateRepository("test", "description", "disk", []string{tmpdir}, 1, tmpdir, []string{"../../tests/fixtures/buildable"}, pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(repo.GetName()).To(Equal("test"))
|
Expect(repo.GetName()).To(Equal("test"))
|
||||||
Expect(helpers.Exists(spec.Rel(REPOSITORY_SPECFILE))).ToNot(BeTrue())
|
Expect(helpers.Exists(spec.Rel(REPOSITORY_SPECFILE))).ToNot(BeTrue())
|
||||||
|
Reference in New Issue
Block a user