Publishing repository without signer (no signed files).

This commit is contained in:
Andrey Smirnov
2014-02-06 19:55:55 +04:00
parent c4a30ce0ce
commit 0e9ccb4481
2 changed files with 33 additions and 20 deletions
+9 -7
View File
@@ -232,14 +232,16 @@ func (p *PublishedRepo) Publish(repo *Repository, packageCollection *PackageColl
releaseFilename := releaseFile.Name() releaseFilename := releaseFile.Name()
releaseFile.Close() releaseFile.Close()
err = signer.DetachedSign(releaseFilename, releaseFilename+".gpg") if signer != nil {
if err != nil { err = signer.DetachedSign(releaseFilename, releaseFilename+".gpg")
return fmt.Errorf("unable to sign Release file: %s", err) if err != nil {
} return fmt.Errorf("unable to sign Release file: %s", err)
}
err = signer.ClearSign(releaseFilename, filepath.Join(filepath.Dir(releaseFilename), "InRelease")) err = signer.ClearSign(releaseFilename, filepath.Join(filepath.Dir(releaseFilename), "InRelease"))
if err != nil { if err != nil {
return fmt.Errorf("unable to sign Release file: %s", err) return fmt.Errorf("unable to sign Release file: %s", err)
}
} }
return nil return nil
+24 -13
View File
@@ -8,8 +8,25 @@ import (
"path/filepath" "path/filepath"
) )
type pathExistsChecker struct {
*CheckerInfo
}
var PathExists = &pathExistsChecker{
&CheckerInfo{Name: "PathExists", Params: []string{"path"}},
}
func (checker *pathExistsChecker) Check(params []interface{}, names []string) (result bool, error string) {
_, err := os.Stat(params[0].(string))
return err == nil, ""
}
type NullSigner struct{} type NullSigner struct{}
func (n *NullSigner) Init() error {
return nil
}
func (n *NullSigner) SetKey(keyRef string) { func (n *NullSigner) SetKey(keyRef string) {
} }
@@ -165,6 +182,13 @@ func (s *PublishedRepoSuite) TestPublish(c *C) {
c.Assert(err, IsNil) c.Assert(err, IsNil)
} }
func (s *PublishedRepoSuite) TestPublishNoSigner(c *C) {
err := s.repo.Publish(s.packageRepo, s.packageCollection, nil)
c.Assert(err, IsNil)
c.Check(filepath.Join(s.packageRepo.RootPath, "public/ppa/dists/squeeze/Release"), PathExists)
}
func (s *PublishedRepoSuite) TestString(c *C) { func (s *PublishedRepoSuite) TestString(c *C) {
c.Check(s.repo.String(), Equals, c.Check(s.repo.String(), Equals,
"ppa/squeeze (main) publishes [snap]: Snapshot from mirror [yandex]: http://mirror.yandex.ru/debian/ squeeze") "ppa/squeeze (main) publishes [snap]: Snapshot from mirror [yandex]: http://mirror.yandex.ru/debian/ squeeze")
@@ -304,19 +328,6 @@ func (s *PublishedRepoCollectionSuite) TestBySnapshot(c *C) {
c.Check(s.collection.BySnapshot(s.snap2), DeepEquals, []*PublishedRepo{s.repo2}) c.Check(s.collection.BySnapshot(s.snap2), DeepEquals, []*PublishedRepo{s.repo2})
} }
type pathExistsChecker struct {
*CheckerInfo
}
var PathExists = &pathExistsChecker{
&CheckerInfo{Name: "PathExists", Params: []string{"path"}},
}
func (checker *pathExistsChecker) Check(params []interface{}, names []string) (result bool, error string) {
_, err := os.Stat(params[0].(string))
return err == nil, ""
}
type PublishedRepoRemoveSuite struct { type PublishedRepoRemoveSuite struct {
PackageListMixinSuite PackageListMixinSuite
db database.Storage db database.Storage