mirror of
https://github.com/mudler/luet.git
synced 2025-09-25 14:38:50 +00:00
installer: Repositoris now support multiple uris
This commit is contained in:
committed by
Ettore Di Giacinto
parent
0d02eccc6c
commit
3b266fd600
@@ -39,49 +39,73 @@ func NewHttpClient(r RepoData) *HttpClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *HttpClient) DownloadArtifact(artifact compiler.Artifact) (compiler.Artifact, error) {
|
func (c *HttpClient) DownloadArtifact(artifact compiler.Artifact) (compiler.Artifact, error) {
|
||||||
|
var file *os.File = nil
|
||||||
|
var u *url.URL = nil
|
||||||
|
|
||||||
artifactName := path.Base(artifact.GetPath())
|
artifactName := path.Base(artifact.GetPath())
|
||||||
Info("Downloading artifact", artifactName, "from", c.RepoData.Uri)
|
ok := false
|
||||||
|
|
||||||
temp, err := ioutil.TempDir(os.TempDir(), "tree")
|
temp, err := ioutil.TempDir(os.TempDir(), "tree")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
file, err := ioutil.TempFile(temp, "HttpClient")
|
for _, uri := range c.RepoData.Urls {
|
||||||
|
Info("Downloading artifact", artifactName, "from", uri)
|
||||||
|
|
||||||
|
file, err = ioutil.TempFile(temp, "HttpClient")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
u, err := url.Parse(c.RepoData.Uri)
|
u, err = url.Parse(uri)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
continue
|
||||||
}
|
}
|
||||||
u.Path = path.Join(u.Path, artifactName)
|
u.Path = path.Join(u.Path, artifactName)
|
||||||
|
|
||||||
_, err = grab.Get(temp, u.String())
|
_, err = grab.Get(temp, u.String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
err = helpers.CopyFile(filepath.Join(temp, artifactName), file.Name())
|
err = helpers.CopyFile(filepath.Join(temp, artifactName), file.Name())
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
ok = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
if !ok {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
newart := artifact
|
newart := artifact
|
||||||
newart.SetPath(file.Name())
|
newart.SetPath(file.Name())
|
||||||
return newart, nil
|
return newart, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *HttpClient) DownloadFile(name string) (string, error) {
|
func (c *HttpClient) DownloadFile(name string) (string, error) {
|
||||||
|
var file *os.File = nil
|
||||||
|
var u *url.URL = nil
|
||||||
|
ok := false
|
||||||
|
|
||||||
temp, err := ioutil.TempDir(os.TempDir(), "tree")
|
temp, err := ioutil.TempDir(os.TempDir(), "tree")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
file, err := ioutil.TempFile(os.TempDir(), "HttpClient")
|
|
||||||
|
for _, uri := range c.RepoData.Urls {
|
||||||
|
|
||||||
|
file, err = ioutil.TempFile(os.TempDir(), "HttpClient")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
continue
|
||||||
}
|
}
|
||||||
//defer os.Remove(file.Name())
|
//defer os.Remove(file.Name())
|
||||||
u, err := url.Parse(c.RepoData.Uri)
|
u, err = url.Parse(uri)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
continue
|
||||||
}
|
}
|
||||||
u.Path = path.Join(u.Path, name)
|
u.Path = path.Join(u.Path, name)
|
||||||
|
|
||||||
@@ -89,10 +113,20 @@ func (c *HttpClient) DownloadFile(name string) (string, error) {
|
|||||||
|
|
||||||
_, err = grab.Get(temp, u.String())
|
_, err = grab.Get(temp, u.String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
err = helpers.CopyFile(filepath.Join(temp, name), file.Name())
|
err = helpers.CopyFile(filepath.Join(temp, name), file.Name())
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
ok = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
if !ok {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
return file.Name(), err
|
return file.Name(), err
|
||||||
}
|
}
|
||||||
|
@@ -44,7 +44,7 @@ var _ = Describe("Http client", func() {
|
|||||||
err = ioutil.WriteFile(filepath.Join(tmpdir, "test.txt"), []byte(`test`), os.ModePerm)
|
err = ioutil.WriteFile(filepath.Join(tmpdir, "test.txt"), []byte(`test`), os.ModePerm)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
c := NewHttpClient(RepoData{Uri: ts.URL})
|
c := NewHttpClient(RepoData{Urls: []string{ts.URL}})
|
||||||
path, err := c.DownloadFile("test.txt")
|
path, err := c.DownloadFile("test.txt")
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(helpers.Read(path)).To(Equal("test"))
|
Expect(helpers.Read(path)).To(Equal("test"))
|
||||||
@@ -62,7 +62,7 @@ var _ = Describe("Http client", func() {
|
|||||||
err = ioutil.WriteFile(filepath.Join(tmpdir, "test.txt"), []byte(`test`), os.ModePerm)
|
err = ioutil.WriteFile(filepath.Join(tmpdir, "test.txt"), []byte(`test`), os.ModePerm)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
c := NewHttpClient(RepoData{Uri: ts.URL})
|
c := NewHttpClient(RepoData{Urls: []string{ts.URL}})
|
||||||
path, err := c.DownloadArtifact(&compiler.PackageArtifact{Path: "test.txt"})
|
path, err := c.DownloadArtifact(&compiler.PackageArtifact{Path: "test.txt"})
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(helpers.Read(path.GetPath())).To(Equal("test"))
|
Expect(helpers.Read(path.GetPath())).To(Equal("test"))
|
||||||
|
@@ -16,5 +16,5 @@
|
|||||||
package client
|
package client
|
||||||
|
|
||||||
type RepoData struct {
|
type RepoData struct {
|
||||||
Uri string
|
Urls []string
|
||||||
}
|
}
|
@@ -36,29 +36,58 @@ func NewLocalClient(r RepoData) *LocalClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *LocalClient) DownloadArtifact(artifact compiler.Artifact) (compiler.Artifact, error) {
|
func (c *LocalClient) DownloadArtifact(artifact compiler.Artifact) (compiler.Artifact, error) {
|
||||||
|
var err error
|
||||||
|
var file *os.File = nil
|
||||||
|
|
||||||
artifactName := path.Base(artifact.GetPath())
|
artifactName := path.Base(artifact.GetPath())
|
||||||
Info("Downloading artifact", artifactName, "from", c.RepoData.Uri)
|
ok := false
|
||||||
file, err := ioutil.TempFile(os.TempDir(), "localclient")
|
for _, uri := range c.RepoData.Urls {
|
||||||
|
Info("Downloading artifact", artifactName, "from", uri)
|
||||||
|
file, err = ioutil.TempFile(os.TempDir(), "localclient")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
continue
|
||||||
}
|
}
|
||||||
//defer os.Remove(file.Name())
|
//defer os.Remove(file.Name())
|
||||||
|
err = helpers.CopyFile(filepath.Join(uri, artifactName), file.Name())
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
ok = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
if !ok {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
err = helpers.CopyFile(filepath.Join(c.RepoData.Uri, artifactName), file.Name())
|
|
||||||
newart := artifact
|
newart := artifact
|
||||||
newart.SetPath(file.Name())
|
newart.SetPath(file.Name())
|
||||||
return newart, nil
|
return newart, nil
|
||||||
}
|
}
|
||||||
func (c *LocalClient) DownloadFile(name string) (string, error) {
|
func (c *LocalClient) DownloadFile(name string) (string, error) {
|
||||||
Info("Downloading file", name, "from", c.RepoData.Uri)
|
var err error
|
||||||
|
var file *os.File = nil
|
||||||
|
|
||||||
file, err := ioutil.TempFile(os.TempDir(), "localclient")
|
ok := false
|
||||||
|
for _, uri := range c.RepoData.Urls {
|
||||||
|
Info("Downloading file", name, "from", uri)
|
||||||
|
file, err = ioutil.TempFile(os.TempDir(), "localclient")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
continue
|
||||||
}
|
}
|
||||||
//defer os.Remove(file.Name())
|
//defer os.Remove(file.Name())
|
||||||
|
|
||||||
err = helpers.CopyFile(filepath.Join(c.RepoData.Uri, name), file.Name())
|
err = helpers.CopyFile(filepath.Join(uri, name), file.Name())
|
||||||
|
if err != nil {
|
||||||
return file.Name(), err
|
continue
|
||||||
|
}
|
||||||
|
ok = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
if ok {
|
||||||
|
return file.Name(), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return "", err
|
||||||
}
|
}
|
||||||
|
@@ -39,7 +39,7 @@ var _ = Describe("Local client", func() {
|
|||||||
err = ioutil.WriteFile(filepath.Join(tmpdir, "test.txt"), []byte(`test`), os.ModePerm)
|
err = ioutil.WriteFile(filepath.Join(tmpdir, "test.txt"), []byte(`test`), os.ModePerm)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
c := NewLocalClient(RepoData{Uri: tmpdir})
|
c := NewLocalClient(RepoData{Urls: []string{tmpdir}})
|
||||||
path, err := c.DownloadFile("test.txt")
|
path, err := c.DownloadFile("test.txt")
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(helpers.Read(path)).To(Equal("test"))
|
Expect(helpers.Read(path)).To(Equal("test"))
|
||||||
@@ -55,7 +55,7 @@ var _ = Describe("Local client", func() {
|
|||||||
err = ioutil.WriteFile(filepath.Join(tmpdir, "test.txt"), []byte(`test`), os.ModePerm)
|
err = ioutil.WriteFile(filepath.Join(tmpdir, "test.txt"), []byte(`test`), os.ModePerm)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
c := NewLocalClient(RepoData{Uri: tmpdir})
|
c := NewLocalClient(RepoData{Urls: []string{tmpdir}})
|
||||||
path, err := c.DownloadArtifact(&compiler.PackageArtifact{Path: "test.txt"})
|
path, err := c.DownloadArtifact(&compiler.PackageArtifact{Path: "test.txt"})
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
Expect(helpers.Read(path.GetPath())).To(Equal("test"))
|
Expect(helpers.Read(path.GetPath())).To(Equal("test"))
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
package installer_test
|
package installer_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@@ -92,7 +93,7 @@ var _ = Describe("Installer", func() {
|
|||||||
|
|
||||||
Expect(helpers.Exists(spec.Rel("repository.yaml"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("repository.yaml"))).To(BeTrue())
|
||||||
Expect(helpers.Exists(spec.Rel("tree.tar"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("tree.tar"))).To(BeTrue())
|
||||||
Expect(repo.GetUri()).To(Equal(tmpdir))
|
Expect(repo.GetUrls()[0]).To(Equal(tmpdir))
|
||||||
Expect(repo.GetType()).To(Equal("disk"))
|
Expect(repo.GetType()).To(Equal("disk"))
|
||||||
|
|
||||||
fakeroot, err := ioutil.TempDir("", "fakeroot")
|
fakeroot, err := ioutil.TempDir("", "fakeroot")
|
||||||
@@ -103,16 +104,18 @@ var _ = Describe("Installer", func() {
|
|||||||
repo2, err := NewLuetRepositoryFromYaml([]byte(`
|
repo2, err := NewLuetRepositoryFromYaml([]byte(`
|
||||||
name: "test"
|
name: "test"
|
||||||
type: "disk"
|
type: "disk"
|
||||||
uri: "`+tmpdir+`"
|
urls:
|
||||||
|
- "`+tmpdir+`"
|
||||||
`), pkg.NewInMemoryDatabase(false))
|
`), pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
inst.Repositories(Repositories{repo2})
|
inst.Repositories(Repositories{repo2})
|
||||||
Expect(repo.GetUri()).To(Equal(tmpdir))
|
Expect(repo.GetUrls()[0]).To(Equal(tmpdir))
|
||||||
Expect(repo.GetType()).To(Equal("disk"))
|
Expect(repo.GetType()).To(Equal("disk"))
|
||||||
systemDB := pkg.NewInMemoryDatabase(false)
|
systemDB := pkg.NewInMemoryDatabase(false)
|
||||||
system := &System{Database: systemDB, Target: fakeroot}
|
system := &System{Database: systemDB, Target: fakeroot}
|
||||||
err = inst.Install([]pkg.Package{&pkg.DefaultPackage{Name: "b", Category: "test", Version: "1.0"}}, system)
|
err = inst.Install([]pkg.Package{&pkg.DefaultPackage{Name: "b", Category: "test", Version: "1.0"}}, system)
|
||||||
|
fmt.Println("ERR ", err)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
Expect(helpers.Exists(filepath.Join(fakeroot, "test5"))).To(BeTrue())
|
Expect(helpers.Exists(filepath.Join(fakeroot, "test5"))).To(BeTrue())
|
||||||
@@ -204,7 +207,7 @@ uri: "`+tmpdir+`"
|
|||||||
|
|
||||||
Expect(helpers.Exists(spec.Rel("repository.yaml"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("repository.yaml"))).To(BeTrue())
|
||||||
Expect(helpers.Exists(spec.Rel("tree.tar"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("tree.tar"))).To(BeTrue())
|
||||||
Expect(repo.GetUri()).To(Equal(tmpdir))
|
Expect(repo.GetUrls()[0]).To(Equal(tmpdir))
|
||||||
Expect(repo.GetType()).To(Equal("disk"))
|
Expect(repo.GetType()).To(Equal("disk"))
|
||||||
|
|
||||||
fakeroot, err := ioutil.TempDir("", "fakeroot")
|
fakeroot, err := ioutil.TempDir("", "fakeroot")
|
||||||
@@ -215,12 +218,13 @@ uri: "`+tmpdir+`"
|
|||||||
repo2, err := NewLuetRepositoryFromYaml([]byte(`
|
repo2, err := NewLuetRepositoryFromYaml([]byte(`
|
||||||
name: "test"
|
name: "test"
|
||||||
type: "disk"
|
type: "disk"
|
||||||
uri: "`+tmpdir+`"
|
urls:
|
||||||
|
- "`+tmpdir+`"
|
||||||
`), pkg.NewInMemoryDatabase(false))
|
`), pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
inst.Repositories(Repositories{repo2})
|
inst.Repositories(Repositories{repo2})
|
||||||
Expect(repo.GetUri()).To(Equal(tmpdir))
|
Expect(repo.GetUrls()[0]).To(Equal(tmpdir))
|
||||||
Expect(repo.GetType()).To(Equal("disk"))
|
Expect(repo.GetType()).To(Equal("disk"))
|
||||||
|
|
||||||
bolt, err := ioutil.TempDir("", "db")
|
bolt, err := ioutil.TempDir("", "db")
|
||||||
@@ -311,7 +315,7 @@ uri: "`+tmpdir+`"
|
|||||||
|
|
||||||
Expect(helpers.Exists(spec.Rel("repository.yaml"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("repository.yaml"))).To(BeTrue())
|
||||||
Expect(helpers.Exists(spec.Rel("tree.tar"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("tree.tar"))).To(BeTrue())
|
||||||
Expect(repo.GetUri()).To(Equal(tmpdir))
|
Expect(repo.GetUrls()[0]).To(Equal(tmpdir))
|
||||||
Expect(repo.GetType()).To(Equal("disk"))
|
Expect(repo.GetType()).To(Equal("disk"))
|
||||||
|
|
||||||
fakeroot, err := ioutil.TempDir("", "fakeroot")
|
fakeroot, err := ioutil.TempDir("", "fakeroot")
|
||||||
@@ -322,12 +326,13 @@ uri: "`+tmpdir+`"
|
|||||||
repo2, err := NewLuetRepositoryFromYaml([]byte(`
|
repo2, err := NewLuetRepositoryFromYaml([]byte(`
|
||||||
name: "test"
|
name: "test"
|
||||||
type: "disk"
|
type: "disk"
|
||||||
uri: "`+tmpdir+`"
|
urls:
|
||||||
|
- "`+tmpdir+`"
|
||||||
`), pkg.NewInMemoryDatabase(false))
|
`), pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
inst.Repositories(Repositories{repo2})
|
inst.Repositories(Repositories{repo2})
|
||||||
Expect(repo.GetUri()).To(Equal(tmpdir))
|
Expect(repo.GetUrls()[0]).To(Equal(tmpdir))
|
||||||
Expect(repo.GetType()).To(Equal("disk"))
|
Expect(repo.GetType()).To(Equal("disk"))
|
||||||
|
|
||||||
bolt, err := ioutil.TempDir("", "db")
|
bolt, err := ioutil.TempDir("", "db")
|
||||||
@@ -425,7 +430,7 @@ uri: "`+tmpdir+`"
|
|||||||
|
|
||||||
Expect(helpers.Exists(spec.Rel("repository.yaml"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("repository.yaml"))).To(BeTrue())
|
||||||
Expect(helpers.Exists(spec.Rel("tree.tar"))).To(BeTrue())
|
Expect(helpers.Exists(spec.Rel("tree.tar"))).To(BeTrue())
|
||||||
Expect(repo.GetUri()).To(Equal(tmpdir))
|
Expect(repo.GetUrls()[0]).To(Equal(tmpdir))
|
||||||
Expect(repo.GetType()).To(Equal("disk"))
|
Expect(repo.GetType()).To(Equal("disk"))
|
||||||
|
|
||||||
fakeroot, err := ioutil.TempDir("", "fakeroot")
|
fakeroot, err := ioutil.TempDir("", "fakeroot")
|
||||||
@@ -436,12 +441,13 @@ uri: "`+tmpdir+`"
|
|||||||
repo2, err := NewLuetRepositoryFromYaml([]byte(`
|
repo2, err := NewLuetRepositoryFromYaml([]byte(`
|
||||||
name: "test"
|
name: "test"
|
||||||
type: "disk"
|
type: "disk"
|
||||||
uri: "`+tmpdir+`"
|
urls:
|
||||||
|
- "`+tmpdir+`"
|
||||||
`), pkg.NewInMemoryDatabase(false))
|
`), pkg.NewInMemoryDatabase(false))
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
inst.Repositories(Repositories{repo2})
|
inst.Repositories(Repositories{repo2})
|
||||||
Expect(repo.GetUri()).To(Equal(tmpdir))
|
Expect(repo.GetUrls()[0]).To(Equal(tmpdir))
|
||||||
Expect(repo.GetType()).To(Equal("disk"))
|
Expect(repo.GetType()).To(Equal("disk"))
|
||||||
|
|
||||||
bolt, err := ioutil.TempDir("", "db")
|
bolt, err := ioutil.TempDir("", "db")
|
||||||
|
@@ -38,8 +38,9 @@ type Repositories []Repository
|
|||||||
|
|
||||||
type Repository interface {
|
type Repository interface {
|
||||||
GetName() string
|
GetName() string
|
||||||
GetUri() string
|
GetUrls() []string
|
||||||
SetUri(string)
|
SetUrls([]string)
|
||||||
|
AddUrl(string)
|
||||||
GetPriority() int
|
GetPriority() int
|
||||||
GetIndex() compiler.ArtifactIndex
|
GetIndex() compiler.ArtifactIndex
|
||||||
GetTree() tree.Builder
|
GetTree() tree.Builder
|
||||||
|
@@ -35,7 +35,7 @@ import (
|
|||||||
|
|
||||||
type LuetRepository struct {
|
type LuetRepository struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Uri string `json:"uri"`
|
Urls []string `json:"urls"`
|
||||||
Priority int `json:"priority"`
|
Priority int `json:"priority"`
|
||||||
Index compiler.ArtifactIndex `json:"index"`
|
Index compiler.ArtifactIndex `json:"index"`
|
||||||
Tree tree.Builder `json:"-"`
|
Tree tree.Builder `json:"-"`
|
||||||
@@ -45,7 +45,7 @@ type LuetRepository struct {
|
|||||||
|
|
||||||
type LuetRepositorySerialized struct {
|
type LuetRepositorySerialized struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Uri string `json:"uri"`
|
Urls []string `json:"urls"`
|
||||||
Priority int `json:"priority"`
|
Priority int `json:"priority"`
|
||||||
Index []*compiler.PackageArtifact `json:"index"`
|
Index []*compiler.PackageArtifact `json:"index"`
|
||||||
Type string `json:"type"`
|
Type string `json:"type"`
|
||||||
@@ -67,7 +67,7 @@ func GenerateRepository(name, uri, t string, priority int, src, treeDir string,
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewLuetRepository(name, uri, t string, priority int, art []compiler.Artifact, builder tree.Builder) Repository {
|
func NewLuetRepository(name, uri, t string, priority int, art []compiler.Artifact, builder tree.Builder) Repository {
|
||||||
return &LuetRepository{Index: art, Type: t, Tree: builder, Name: name, Uri: uri, Priority: priority}
|
return &LuetRepository{Index: art, Type: t, Tree: builder, Name: name, Urls: []string{uri}, Priority: priority}
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewLuetRepositoryFromYaml(data []byte, db pkg.PackageDatabase) (Repository, error) {
|
func NewLuetRepositoryFromYaml(data []byte, db pkg.PackageDatabase) (Repository, error) {
|
||||||
@@ -78,7 +78,7 @@ func NewLuetRepositoryFromYaml(data []byte, db pkg.PackageDatabase) (Repository,
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
r.Name = p.Name
|
r.Name = p.Name
|
||||||
r.Uri = p.Uri
|
r.Urls = p.Urls
|
||||||
r.Priority = p.Priority
|
r.Priority = p.Priority
|
||||||
r.Type = p.Type
|
r.Type = p.Type
|
||||||
i := compiler.ArtifactIndex{}
|
i := compiler.ArtifactIndex{}
|
||||||
@@ -143,11 +143,14 @@ func (r *LuetRepository) SetType(p string) {
|
|||||||
r.Type = p
|
r.Type = p
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *LuetRepository) SetUri(p string) {
|
func (r *LuetRepository) AddUrl(p string) {
|
||||||
r.Uri = p
|
r.Urls = append(r.Urls, p)
|
||||||
}
|
}
|
||||||
func (r *LuetRepository) GetUri() string {
|
func (r *LuetRepository) GetUrls() []string {
|
||||||
return r.Uri
|
return r.Urls
|
||||||
|
}
|
||||||
|
func (r *LuetRepository) SetUrls(urls []string) {
|
||||||
|
r.Urls = urls
|
||||||
}
|
}
|
||||||
func (r *LuetRepository) GetPriority() int {
|
func (r *LuetRepository) GetPriority() int {
|
||||||
return r.Priority
|
return r.Priority
|
||||||
@@ -191,9 +194,9 @@ func (r *LuetRepository) Write(dst string) error {
|
|||||||
func (r *LuetRepository) Client() Client {
|
func (r *LuetRepository) Client() Client {
|
||||||
switch r.GetType() {
|
switch r.GetType() {
|
||||||
case "disk":
|
case "disk":
|
||||||
return client.NewLocalClient(client.RepoData{Uri: r.GetUri()})
|
return client.NewLocalClient(client.RepoData{Urls: r.GetUrls()})
|
||||||
case "http":
|
case "http":
|
||||||
return client.NewHttpClient(client.RepoData{Uri: r.GetUri()})
|
return client.NewHttpClient(client.RepoData{Urls: r.GetUrls()})
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@@ -205,7 +208,7 @@ func (r *LuetRepository) Sync() (Repository, error) {
|
|||||||
}
|
}
|
||||||
file, err := c.DownloadFile("repository.yaml")
|
file, err := c.DownloadFile("repository.yaml")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "While downloading repository.yaml from "+r.GetUri())
|
return nil, errors.Wrap(err, "While downloading repository.yaml")
|
||||||
}
|
}
|
||||||
dat, err := ioutil.ReadFile(file)
|
dat, err := ioutil.ReadFile(file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -222,7 +225,7 @@ func (r *LuetRepository) Sync() (Repository, error) {
|
|||||||
|
|
||||||
archivetree, err := c.DownloadFile("tree.tar")
|
archivetree, err := c.DownloadFile("tree.tar")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "While downloading repository.yaml from "+r.GetUri())
|
return nil, errors.Wrap(err, "While downloading repository.yaml")
|
||||||
}
|
}
|
||||||
defer os.RemoveAll(archivetree) // clean up
|
defer os.RemoveAll(archivetree) // clean up
|
||||||
|
|
||||||
@@ -251,7 +254,7 @@ func (r *LuetRepository) Sync() (Repository, error) {
|
|||||||
}
|
}
|
||||||
repo.SetTree(reciper)
|
repo.SetTree(reciper)
|
||||||
repo.SetTreePath(treefs)
|
repo.SetTreePath(treefs)
|
||||||
repo.SetUri(r.GetUri())
|
repo.SetUrls(r.GetUrls())
|
||||||
|
|
||||||
return repo, nil
|
return repo, nil
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user