From 38ea595c9a8736e83c699dbdc9bddc3490d61a6d Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Tue, 5 Aug 2014 15:47:23 +0400 Subject: [PATCH] Add forceOverwrite on the path to LinkFromPool. #90 --- deb/package.go | 5 +++-- deb/package_test.go | 4 ++-- deb/publish.go | 4 ++-- deb/publish_test.go | 10 +++++----- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/deb/package.go b/deb/package.go index b6be2453..976b8a2e 100644 --- a/deb/package.go +++ b/deb/package.go @@ -462,7 +462,8 @@ func (p *Package) Equals(p2 *Package) bool { } // LinkFromPool links package file from pool to dist's pool location -func (p *Package) LinkFromPool(publishedStorage aptly.PublishedStorage, packagePool aptly.PackagePool, prefix string, component string) error { +func (p *Package) LinkFromPool(publishedStorage aptly.PublishedStorage, packagePool aptly.PackagePool, + prefix, component string, force bool) error { poolDir, err := p.PoolDirectory() if err != nil { return err @@ -477,7 +478,7 @@ func (p *Package) LinkFromPool(publishedStorage aptly.PublishedStorage, packageP relPath := filepath.Join("pool", component, poolDir) publishedDirectory := filepath.Join(prefix, relPath) - err = publishedStorage.LinkFromPool(publishedDirectory, packagePool, sourcePath, f.Checksums.MD5, false) + err = publishedStorage.LinkFromPool(publishedDirectory, packagePool, sourcePath, f.Checksums.MD5, force) if err != nil { return err } diff --git a/deb/package_test.go b/deb/package_test.go index 29651fe6..efab20db 100644 --- a/deb/package_test.go +++ b/deb/package_test.go @@ -345,13 +345,13 @@ func (s *PackageSuite) TestLinkFromPool(c *C) { c.Assert(err, IsNil) file.Close() - err = p.LinkFromPool(publishedStorage, packagePool, "", "non-free") + err = p.LinkFromPool(publishedStorage, packagePool, "", "non-free", false) c.Check(err, IsNil) c.Check(p.Files()[0].Filename, Equals, "alien-arena-common_7.40-2_i386.deb") c.Check(p.Files()[0].downloadPath, Equals, "pool/non-free/a/alien-arena") p.IsSource = true - err = p.LinkFromPool(publishedStorage, packagePool, "", "non-free") + err = p.LinkFromPool(publishedStorage, packagePool, "", "non-free", false) c.Check(err, IsNil) c.Check(p.Extra()["Directory"], Equals, "pool/non-free/a/alien-arena") } diff --git a/deb/publish.go b/deb/publish.go index e635a620..efb9969a 100644 --- a/deb/publish.go +++ b/deb/publish.go @@ -393,7 +393,7 @@ func (p *PublishedRepo) GetLabel() string { // Publish publishes snapshot (repository) contents, links package files, generates Packages & Release files, signs them func (p *PublishedRepo) Publish(packagePool aptly.PackagePool, publishedStorageProvider aptly.PublishedStorageProvider, - collectionFactory *CollectionFactory, signer utils.Signer, progress aptly.Progress) error { + collectionFactory *CollectionFactory, signer utils.Signer, progress aptly.Progress, forceOverwrite bool) error { publishedStorage := publishedStorageProvider.GetPublishedStorage(p.Storage) err := publishedStorage.MkDir(filepath.Join(p.Prefix, "pool")) @@ -488,7 +488,7 @@ func (p *PublishedRepo) Publish(packagePool aptly.PackagePool, publishedStorageP progress.AddBar(1) } if pkg.MatchesArchitecture(arch) { - err = pkg.LinkFromPool(publishedStorage, packagePool, p.Prefix, component) + err = pkg.LinkFromPool(publishedStorage, packagePool, p.Prefix, component, forceOverwrite) if err != nil { return err } diff --git a/deb/publish_test.go b/deb/publish_test.go index 30a8d638..f8a66672 100644 --- a/deb/publish_test.go +++ b/deb/publish_test.go @@ -274,7 +274,7 @@ func (s *PublishedRepoSuite) TestDistributionComponentGuessing(c *C) { } func (s *PublishedRepoSuite) TestPublish(c *C) { - err := s.repo.Publish(s.packagePool, s.provider, s.factory, &NullSigner{}, nil) + err := s.repo.Publish(s.packagePool, s.provider, s.factory, &NullSigner{}, nil, false) c.Assert(err, IsNil) c.Check(s.repo.Architectures, DeepEquals, []string{"i386"}) @@ -321,7 +321,7 @@ func (s *PublishedRepoSuite) TestPublish(c *C) { } func (s *PublishedRepoSuite) TestPublishNoSigner(c *C) { - err := s.repo.Publish(s.packagePool, s.provider, s.factory, nil, nil) + err := s.repo.Publish(s.packagePool, s.provider, s.factory, nil, nil, false) c.Assert(err, IsNil) c.Check(filepath.Join(s.publishedStorage.PublicPath(), "ppa/dists/squeeze/Release"), PathExists) @@ -329,7 +329,7 @@ func (s *PublishedRepoSuite) TestPublishNoSigner(c *C) { } func (s *PublishedRepoSuite) TestPublishLocalRepo(c *C) { - err := s.repo2.Publish(s.packagePool, s.provider, s.factory, nil, nil) + err := s.repo2.Publish(s.packagePool, s.provider, s.factory, nil, nil, false) c.Assert(err, IsNil) c.Check(filepath.Join(s.publishedStorage.PublicPath(), "ppa/dists/maverick/Release"), PathExists) @@ -337,7 +337,7 @@ func (s *PublishedRepoSuite) TestPublishLocalRepo(c *C) { } func (s *PublishedRepoSuite) TestPublishLocalSourceRepo(c *C) { - err := s.repo4.Publish(s.packagePool, s.provider, s.factory, nil, nil) + err := s.repo4.Publish(s.packagePool, s.provider, s.factory, nil, nil, false) c.Assert(err, IsNil) c.Check(filepath.Join(s.publishedStorage.PublicPath(), "ppa/dists/maverick/Release"), PathExists) @@ -345,7 +345,7 @@ func (s *PublishedRepoSuite) TestPublishLocalSourceRepo(c *C) { } func (s *PublishedRepoSuite) TestPublishOtherStorage(c *C) { - err := s.repo5.Publish(s.packagePool, s.provider, s.factory, nil, nil) + err := s.repo5.Publish(s.packagePool, s.provider, s.factory, nil, nil, false) c.Assert(err, IsNil) c.Check(filepath.Join(s.publishedStorage2.PublicPath(), "ppa/dists/maverick/Release"), PathExists)