mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-05-05 22:08:27 +00:00
Add central place to create all collections from.
This commit is contained in:
@@ -25,6 +25,7 @@ var context struct {
|
|||||||
database database.Storage
|
database database.Storage
|
||||||
packagePool aptly.PackagePool
|
packagePool aptly.PackagePool
|
||||||
publishedStorage aptly.PublishedStorage
|
publishedStorage aptly.PublishedStorage
|
||||||
|
collectionFactory *debian.CollectionFactory
|
||||||
dependencyOptions int
|
dependencyOptions int
|
||||||
architecturesList []string
|
architecturesList []string
|
||||||
// Debug features
|
// Debug features
|
||||||
@@ -67,6 +68,8 @@ func InitContext(cmd *commander.Command) error {
|
|||||||
return fmt.Errorf("can't open database: %s", err)
|
return fmt.Errorf("can't open database: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
context.collectionFactory = debian.NewCollectionFactory(context.database)
|
||||||
|
|
||||||
context.packagePool = files.NewPackagePool(utils.Config.RootDir)
|
context.packagePool = files.NewPackagePool(utils.Config.RootDir)
|
||||||
context.publishedStorage = files.NewPublishedStorage(utils.Config.RootDir)
|
context.publishedStorage = files.NewPublishedStorage(utils.Config.RootDir)
|
||||||
|
|
||||||
|
|||||||
65
debian/collections.go
vendored
Normal file
65
debian/collections.go
vendored
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
package debian
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/smira/aptly/database"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CollectionFactory is a single place to generate all desired collections
|
||||||
|
type CollectionFactory struct {
|
||||||
|
db database.Storage
|
||||||
|
packages *PackageCollection
|
||||||
|
remoteRepos *RemoteRepoCollection
|
||||||
|
snapshots *SnapshotCollection
|
||||||
|
localRepos *LocalRepoCollection
|
||||||
|
publishedRepos *PublishedRepoCollection
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewCollectionFactory creates new factory
|
||||||
|
func NewCollectionFactory(db database.Storage) *CollectionFactory {
|
||||||
|
return &CollectionFactory{db: db}
|
||||||
|
}
|
||||||
|
|
||||||
|
// PackageCollection returns (or creates) new PackageCollection
|
||||||
|
func (factory *CollectionFactory) PackageCollection() *PackageCollection {
|
||||||
|
if factory.packages == nil {
|
||||||
|
factory.packages = NewPackageCollection(factory.db)
|
||||||
|
}
|
||||||
|
|
||||||
|
return factory.packages
|
||||||
|
}
|
||||||
|
|
||||||
|
// RemoteRepoCollection returns (or creates) new RemoteRepoCollection
|
||||||
|
func (factory *CollectionFactory) RemoteRepoCollection() *RemoteRepoCollection {
|
||||||
|
if factory.remoteRepos == nil {
|
||||||
|
factory.remoteRepos = NewRemoteRepoCollection(factory.db)
|
||||||
|
}
|
||||||
|
|
||||||
|
return factory.remoteRepos
|
||||||
|
}
|
||||||
|
|
||||||
|
// SnapshotCollection returns (or creates) new SnapshotCollection
|
||||||
|
func (factory *CollectionFactory) SnapshotCollection() *SnapshotCollection {
|
||||||
|
if factory.snapshots == nil {
|
||||||
|
factory.snapshots = NewSnapshotCollection(factory.db)
|
||||||
|
}
|
||||||
|
|
||||||
|
return factory.snapshots
|
||||||
|
}
|
||||||
|
|
||||||
|
// LocalRepoCollection returns (or creates) new LocalRepoCollection
|
||||||
|
func (factory *CollectionFactory) LocalRepoCollection() *LocalRepoCollection {
|
||||||
|
if factory.localRepos == nil {
|
||||||
|
factory.localRepos = NewLocalRepoCollection(factory.db)
|
||||||
|
}
|
||||||
|
|
||||||
|
return factory.localRepos
|
||||||
|
}
|
||||||
|
|
||||||
|
// PublishedRepoCollection returns (or creates) new PublishedRepoCollection
|
||||||
|
func (factory *CollectionFactory) PublishedRepoCollection() *PublishedRepoCollection {
|
||||||
|
if factory.publishedRepos == nil {
|
||||||
|
factory.publishedRepos = NewPublishedRepoCollection(factory.db)
|
||||||
|
}
|
||||||
|
|
||||||
|
return factory.publishedRepos
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user