pkg

package
v0.29.4-geaaru Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 9, 2022 License: GPL-3.0 Imports: 26 Imported by: 3

Documentation

Index

Constants

View Source
const (
	PackageMetaSuffix     = "metadata.yaml"
	PackageCollectionFile = "collection.yaml"
	PackageDefinitionFile = "definition.yaml"
)

Variables

View Source
var DBInMemoryInstance = &InMemoryDatabase{
	Mutex:             &sync.Mutex{},
	FileDatabase:      map[string][]string{},
	FinalizerDatabase: map[string]*PackageFinalizer{},
	Database:          map[string]string{},
	CacheNoVersion:    map[string]map[string]interface{}{},
	ProvidesDatabase:  map[string]map[string]Package{},
	RevDepsDatabase:   map[string]map[string]Package{},
	cached:            map[string]interface{}{},
}

Functions

func GetRawPackages

func GetRawPackages(yml []byte) (rawPackages, error)

Types

type AnnotationKey

type AnnotationKey string
const (
	ConfigProtectAnnnotation AnnotationKey = "config_protect"
	SubsetsAnnotation        AnnotationKey = "subsets"
)

type BoltDatabase

type BoltDatabase struct {
	sync.Mutex
	Path             string
	ProvidesDatabase map[string]map[string]Package

	DB *storm.DB
}

func (*BoltDatabase) Clean

func (db *BoltDatabase) Clean() error

func (*BoltDatabase) Clone

func (db *BoltDatabase) Clone(to PackageDatabase) error

func (*BoltDatabase) Close

func (db *BoltDatabase) Close() error

func (*BoltDatabase) Copy

func (db *BoltDatabase) Copy() (PackageDatabase, error)

func (*BoltDatabase) Create

func (db *BoltDatabase) Create(id string, v []byte) (string, error)

func (*BoltDatabase) CreatePackage

func (db *BoltDatabase) CreatePackage(p Package) (string, error)

Encode encodes the package to string. It returns an ID which can be used to retrieve the package later on.

func (*BoltDatabase) FindPackage

func (db *BoltDatabase) FindPackage(tofind Package) (Package, error)

func (*BoltDatabase) FindPackageByFile

func (db *BoltDatabase) FindPackageByFile(pattern string) (Packages, error)

func (*BoltDatabase) FindPackageCandidate

func (db *BoltDatabase) FindPackageCandidate(p Package) (Package, error)

func (*BoltDatabase) FindPackageLabel

func (db *BoltDatabase) FindPackageLabel(labelKey string) (Packages, error)

func (*BoltDatabase) FindPackageLabelMatch

func (db *BoltDatabase) FindPackageLabelMatch(pattern string) (Packages, error)

func (*BoltDatabase) FindPackageMatch

func (db *BoltDatabase) FindPackageMatch(pattern string) (Packages, error)

func (*BoltDatabase) FindPackageVersions

func (db *BoltDatabase) FindPackageVersions(p Package) (Packages, error)

FindPackageVersions return the list of the packages beloging to cat/name

func (*BoltDatabase) FindPackages

func (db *BoltDatabase) FindPackages(p Package) (Packages, error)

FindPackages return the list of the packages beloging to cat/name (any versions in requested range) FIXME: Optimize, see inmemorydb

func (*BoltDatabase) Get

func (db *BoltDatabase) Get(s string) (string, error)

func (*BoltDatabase) GetAllPackages

func (db *BoltDatabase) GetAllPackages(packages chan Package) error

func (*BoltDatabase) GetPackage

func (db *BoltDatabase) GetPackage(ID string) (Package, error)

func (*BoltDatabase) GetPackageFiles

func (db *BoltDatabase) GetPackageFiles(p Package) ([]string, error)

func (*BoltDatabase) GetPackageFinalizer

func (db *BoltDatabase) GetPackageFinalizer(p Package) (*PackageFinalizer, error)

func (*BoltDatabase) GetPackages

func (db *BoltDatabase) GetPackages() []string

func (*BoltDatabase) GetRevdeps

func (db *BoltDatabase) GetRevdeps(p Package) (Packages, error)

GetRevdeps uses a new inmemory db to calcuate revdeps TODO: Have a memory instance for boltdb, so we don't compute each time we get called as this is REALLY expensive. But we don't perform usually those operations in a file db.

func (*BoltDatabase) RebuildIndexes

func (db *BoltDatabase) RebuildIndexes() error

func (*BoltDatabase) RemovePackage

func (db *BoltDatabase) RemovePackage(p Package) error

func (*BoltDatabase) RemovePackageFiles

func (db *BoltDatabase) RemovePackageFiles(p Package) error

func (*BoltDatabase) RemovePackageFinalizer

func (db *BoltDatabase) RemovePackageFinalizer(p Package) error

func (*BoltDatabase) Retrieve

func (db *BoltDatabase) Retrieve(ID string) ([]byte, error)

func (*BoltDatabase) Set

func (db *BoltDatabase) Set(k, v string) error

func (*BoltDatabase) SetPackageFiles

func (db *BoltDatabase) SetPackageFiles(p *PackageFile) error

func (*BoltDatabase) SetPackageFinalizer

func (db *BoltDatabase) SetPackageFinalizer(p *PackageFinalizer) error

func (*BoltDatabase) UpdatePackage

func (db *BoltDatabase) UpdatePackage(p Package) error

func (*BoltDatabase) World

func (db *BoltDatabase) World() Packages

type Collection

type Collection struct {
	Packages []DefaultPackage `json:"packages"`
}

type DefaultPackage

type DefaultPackage struct {
	ID               int               `storm:"id,increment" json:"id"` // primary key with auto increment
	Name             string            `json:"name"`                    // Affects YAML field names too.
	Version          string            `json:"version"`                 // Affects YAML field names too.
	Category         string            `json:"category"`                // Affects YAML field names too.
	UseFlags         []string          `json:"use_flags,omitempty"`     // Affects YAML field names too.
	State            State             `json:"state,omitempty"`
	PackageRequires  []*DefaultPackage `json:"requires"`           // Affects YAML field names too.
	PackageConflicts []*DefaultPackage `json:"conflicts"`          // Affects YAML field names too.
	Provides         []*DefaultPackage `json:"provides,omitempty"` // Affects YAML field names too.
	Hidden           bool              `json:"hidden,omitempty"`   // Affects YAML field names too.

	// Annotations are used for core features/options
	Annotations map[string]interface{} `json:"annotations,omitempty"` // Affects YAML field names too

	// Path is set only internally when tree is loaded from disk
	Path string `json:"path,omitempty"`

	Description    string   `json:"description,omitempty"`
	Uri            []string `json:"uri,omitempty"`
	License        string   `json:"license,omitempty"`
	BuildTimestamp string   `json:"buildtimestamp,omitempty"`

	Labels map[string]string `json:"labels,omitempty"` // Affects YAML field names too.

	TreeDir string `json:"treedir,omitempty"`

	Repository string `json:"repository,omitempty"`
}

DefaultPackage represent a standard package definition

func DefaultPackageFromYaml

func DefaultPackageFromYaml(yml []byte) (DefaultPackage, error)

>> Unmarshallers DefaultPackageFromYaml decodes a package from yaml bytes

func DefaultPackagesFromYAML

func DefaultPackagesFromYAML(yml []byte) ([]DefaultPackage, error)

func NewPackage

func NewPackage(name, version string, requires []*DefaultPackage, conflicts []*DefaultPackage) *DefaultPackage

NewPackage returns a new package

func (*DefaultPackage) AddAnnotation

func (p *DefaultPackage) AddAnnotation(k string, v interface{})

func (*DefaultPackage) AddLabel

func (p *DefaultPackage) AddLabel(k, v string)

func (*DefaultPackage) AddURI

func (p *DefaultPackage) AddURI(s string)

func (*DefaultPackage) AddUse

func (p *DefaultPackage) AddUse(use string)

AddUse adds a use to a package

func (*DefaultPackage) AtomMatches

func (p *DefaultPackage) AtomMatches(m Package) bool

func (*DefaultPackage) BuildFormula

func (pack *DefaultPackage) BuildFormula(definitiondb PackageDatabase, db PackageDatabase) ([]bf.Formula, error)

func (*DefaultPackage) BumpBuildVersion

func (p *DefaultPackage) BumpBuildVersion() error

func (*DefaultPackage) Clone

func (p *DefaultPackage) Clone() Package

func (*DefaultPackage) Conflicts

func (p *DefaultPackage) Conflicts(req []*DefaultPackage) Package

func (*DefaultPackage) Encode

func (p *DefaultPackage) Encode(db PackageDatabase) (string, error)

Encode encodes the package to string. It returns an ID which can be used to retrieve the package later on.

func (*DefaultPackage) Expand

func (p *DefaultPackage) Expand(definitiondb PackageDatabase) (Packages, error)

func (*DefaultPackage) Explain

func (p *DefaultPackage) Explain()

func (*DefaultPackage) GetAnnotationByKey

func (p *DefaultPackage) GetAnnotationByKey(k string) (ans interface{})

func (*DefaultPackage) GetAnnotations

func (p *DefaultPackage) GetAnnotations() map[string]interface{}

func (*DefaultPackage) GetBuildTimestamp

func (p *DefaultPackage) GetBuildTimestamp() string

GetBuildTimestamp returns the package build timestamp

func (*DefaultPackage) GetCategory

func (p *DefaultPackage) GetCategory() string

func (*DefaultPackage) GetConflicts

func (p *DefaultPackage) GetConflicts() []*DefaultPackage

func (*DefaultPackage) GetDescription

func (p *DefaultPackage) GetDescription() string

func (*DefaultPackage) GetFingerPrint

func (p *DefaultPackage) GetFingerPrint() string

GetFingerPrint returns a UUID of the package. FIXME: this needs to be unique, now just name is generalized

func (*DefaultPackage) GetLabels

func (p *DefaultPackage) GetLabels() map[string]string

func (*DefaultPackage) GetLicense

func (p *DefaultPackage) GetLicense() string

func (*DefaultPackage) GetMetadataFilePath

func (d *DefaultPackage) GetMetadataFilePath() string

GetMetadataFilePath returns the canonical name of an artifact metadata file

func (*DefaultPackage) GetName

func (p *DefaultPackage) GetName() string

func (*DefaultPackage) GetPackageName

func (p *DefaultPackage) GetPackageName() string

func (*DefaultPackage) GetPath

func (p *DefaultPackage) GetPath() string

GetPath returns the path where the definition file was found

func (*DefaultPackage) GetProvides

func (p *DefaultPackage) GetProvides() []*DefaultPackage

func (*DefaultPackage) GetRepository

func (p *DefaultPackage) GetRepository() string

func (*DefaultPackage) GetRequires

func (p *DefaultPackage) GetRequires() []*DefaultPackage

func (*DefaultPackage) GetRuntimePackage

func (p *DefaultPackage) GetRuntimePackage() (*DefaultPackage, error)

func (*DefaultPackage) GetTreeDir

func (p *DefaultPackage) GetTreeDir() string

func (*DefaultPackage) GetURI

func (p *DefaultPackage) GetURI() []string

func (*DefaultPackage) GetUses

func (p *DefaultPackage) GetUses() []string

func (*DefaultPackage) GetVersion

func (p *DefaultPackage) GetVersion() string

func (*DefaultPackage) HasAnnotation

func (p *DefaultPackage) HasAnnotation(label string) bool

func (*DefaultPackage) HasLabel

func (p *DefaultPackage) HasLabel(label string) bool

func (*DefaultPackage) HashFingerprint

func (p *DefaultPackage) HashFingerprint(salt string) string

func (*DefaultPackage) HumanReadableString

func (p *DefaultPackage) HumanReadableString() string

func (*DefaultPackage) ImageID

func (p *DefaultPackage) ImageID() string

func (DefaultPackage) IsCollection

func (p DefaultPackage) IsCollection() bool

func (*DefaultPackage) IsHidden

func (p *DefaultPackage) IsHidden() bool

func (*DefaultPackage) IsSelector

func (p *DefaultPackage) IsSelector() bool

func (*DefaultPackage) JSON

func (t *DefaultPackage) JSON() ([]byte, error)

Major and minor gets escaped when marshalling in JSON, making compiler fails recognizing selectors for expansion

func (*DefaultPackage) LabelDeps

func (p *DefaultPackage) LabelDeps(definitiondb PackageDatabase, labelKey string) Packages

func (*DefaultPackage) Mark

func (p *DefaultPackage) Mark() Package

func (*DefaultPackage) MatchAnnotation

func (p *DefaultPackage) MatchAnnotation(r *regexp.Regexp) bool

func (*DefaultPackage) MatchLabel

func (p *DefaultPackage) MatchLabel(r *regexp.Regexp) bool

func (*DefaultPackage) Matches

func (p *DefaultPackage) Matches(m Package) bool

func (*DefaultPackage) PackageName

func (p *DefaultPackage) PackageName() string

func (*DefaultPackage) Rel

func (p *DefaultPackage) Rel(s string) string

func (*DefaultPackage) Related

func (p *DefaultPackage) Related(definitiondb PackageDatabase) Packages

func (*DefaultPackage) RemoveUse

func (p *DefaultPackage) RemoveUse(use string)

RemoveUse removes a use to a package

func (*DefaultPackage) Requires

func (p *DefaultPackage) Requires(req []*DefaultPackage) Package

func (*DefaultPackage) RequiresContains

func (pack *DefaultPackage) RequiresContains(definitiondb PackageDatabase, s Package) (bool, error)

RequiresContains recursively scans into the database packages dependencies to find a match with the given package It is used by the solver during uninstall.

func (*DefaultPackage) Revdeps

func (p *DefaultPackage) Revdeps(definitiondb PackageDatabase) Packages

func (*DefaultPackage) SelectorMatchVersion

func (p *DefaultPackage) SelectorMatchVersion(ver string, v version.Versioner) (bool, error)

func (*DefaultPackage) SetBuildTimestamp

func (p *DefaultPackage) SetBuildTimestamp(s string)

SetBuildTimestamp sets the package Build timestamp

func (*DefaultPackage) SetCategory

func (p *DefaultPackage) SetCategory(s string)

func (*DefaultPackage) SetDescription

func (p *DefaultPackage) SetDescription(s string)

func (*DefaultPackage) SetLicense

func (p *DefaultPackage) SetLicense(s string)

func (*DefaultPackage) SetName

func (p *DefaultPackage) SetName(s string)

func (*DefaultPackage) SetPath

func (p *DefaultPackage) SetPath(s string)

func (*DefaultPackage) SetProvides

func (p *DefaultPackage) SetProvides(req []*DefaultPackage) Package

func (*DefaultPackage) SetRepository

func (p *DefaultPackage) SetRepository(r string)

func (*DefaultPackage) SetTreeDir

func (p *DefaultPackage) SetTreeDir(s string)

func (*DefaultPackage) SetVersion

func (p *DefaultPackage) SetVersion(v string)

func (*DefaultPackage) String

func (p *DefaultPackage) String() string

func (*DefaultPackage) VersionMatchSelector

func (p *DefaultPackage) VersionMatchSelector(selector string, v version.Versioner) (bool, error)

func (*DefaultPackage) Yaml

func (p *DefaultPackage) Yaml() ([]byte, error)

type DefaultPackages

type DefaultPackages []*DefaultPackage

func (DefaultPackages) Hash

func (d DefaultPackages) Hash(salt string) string

type InMemoryDatabase

type InMemoryDatabase struct {
	*sync.Mutex
	Database          map[string]string
	FileDatabase      map[string][]string
	FinalizerDatabase map[string]*PackageFinalizer
	CacheNoVersion    map[string]map[string]interface{}
	ProvidesDatabase  map[string]map[string]Package
	RevDepsDatabase   map[string]map[string]Package
	// contains filtered or unexported fields
}

func (*InMemoryDatabase) Clean

func (db *InMemoryDatabase) Clean() error

func (*InMemoryDatabase) Clone

func (db *InMemoryDatabase) Clone(to PackageDatabase) error

func (*InMemoryDatabase) Close

func (db *InMemoryDatabase) Close() error

func (*InMemoryDatabase) Copy

func (db *InMemoryDatabase) Copy() (PackageDatabase, error)

func (*InMemoryDatabase) Create

func (db *InMemoryDatabase) Create(id string, v []byte) (string, error)

func (*InMemoryDatabase) CreatePackage

func (db *InMemoryDatabase) CreatePackage(p Package) (string, error)

Encode encodes the package to string. It returns an ID which can be used to retrieve the package later on.

func (*InMemoryDatabase) FindPackage

func (db *InMemoryDatabase) FindPackage(p Package) (Package, error)

func (*InMemoryDatabase) FindPackageByFile

func (db *InMemoryDatabase) FindPackageByFile(pattern string) (Packages, error)

func (*InMemoryDatabase) FindPackageCandidate

func (db *InMemoryDatabase) FindPackageCandidate(p Package) (Package, error)

func (*InMemoryDatabase) FindPackageLabel

func (db *InMemoryDatabase) FindPackageLabel(labelKey string) (Packages, error)

func (*InMemoryDatabase) FindPackageLabelMatch

func (db *InMemoryDatabase) FindPackageLabelMatch(pattern string) (Packages, error)

func (*InMemoryDatabase) FindPackageMatch

func (db *InMemoryDatabase) FindPackageMatch(pattern string) (Packages, error)

func (*InMemoryDatabase) FindPackageVersions

func (db *InMemoryDatabase) FindPackageVersions(p Package) (Packages, error)

FindPackages return the list of the packages beloging to cat/name

func (*InMemoryDatabase) FindPackages

func (db *InMemoryDatabase) FindPackages(p Package) (Packages, error)

FindPackages return the list of the packages beloging to cat/name (any versions in requested range)

func (*InMemoryDatabase) Get

func (db *InMemoryDatabase) Get(s string) (string, error)

func (*InMemoryDatabase) GetAllPackages

func (db *InMemoryDatabase) GetAllPackages(packages chan Package) error

func (*InMemoryDatabase) GetPackage

func (db *InMemoryDatabase) GetPackage(ID string) (Package, error)

func (*InMemoryDatabase) GetPackageFiles

func (db *InMemoryDatabase) GetPackageFiles(p Package) ([]string, error)

func (*InMemoryDatabase) GetPackageFinalizer

func (db *InMemoryDatabase) GetPackageFinalizer(p Package) (*PackageFinalizer, error)

func (*InMemoryDatabase) GetPackages

func (db *InMemoryDatabase) GetPackages() []string

func (*InMemoryDatabase) GetRevdeps

func (db *InMemoryDatabase) GetRevdeps(p Package) (Packages, error)

GetRevdeps returns the package reverse dependencies, matching also selectors in versions (>, <, >=, <=) TODO: Code should use db explictly

func (*InMemoryDatabase) RebuildIndexes

func (db *InMemoryDatabase) RebuildIndexes() error

func (*InMemoryDatabase) RemovePackage

func (db *InMemoryDatabase) RemovePackage(p Package) error

func (*InMemoryDatabase) RemovePackageFiles

func (db *InMemoryDatabase) RemovePackageFiles(p Package) error

func (*InMemoryDatabase) RemovePackageFinalizer

func (db *InMemoryDatabase) RemovePackageFinalizer(p Package) error

func (*InMemoryDatabase) Retrieve

func (db *InMemoryDatabase) Retrieve(ID string) ([]byte, error)

func (*InMemoryDatabase) Set

func (db *InMemoryDatabase) Set(k, v string) error

func (*InMemoryDatabase) SetPackageFiles

func (db *InMemoryDatabase) SetPackageFiles(p *PackageFile) error

func (*InMemoryDatabase) SetPackageFinalizer

func (db *InMemoryDatabase) SetPackageFinalizer(p *PackageFinalizer) error

func (*InMemoryDatabase) UpdatePackage

func (db *InMemoryDatabase) UpdatePackage(p Package) error

func (*InMemoryDatabase) World

func (db *InMemoryDatabase) World() Packages

type Package

type Package interface {
	Encode(PackageDatabase) (string, error)
	Related(definitiondb PackageDatabase) Packages

	BuildFormula(PackageDatabase, PackageDatabase) ([]bf.Formula, error)

	GetFingerPrint() string
	GetPackageName() string
	ImageID() string
	Requires([]*DefaultPackage) Package
	Conflicts([]*DefaultPackage) Package
	Revdeps(PackageDatabase) Packages
	LabelDeps(PackageDatabase, string) Packages

	GetProvides() []*DefaultPackage
	SetProvides([]*DefaultPackage) Package

	GetRequires() []*DefaultPackage
	GetConflicts() []*DefaultPackage
	Expand(PackageDatabase) (Packages, error)
	SetCategory(string)

	GetName() string
	SetName(string)
	GetCategory() string
	PackageName() string

	GetVersion() string
	SetVersion(string)
	RequiresContains(PackageDatabase, Package) (bool, error)
	Matches(m Package) bool
	AtomMatches(m Package) bool
	BumpBuildVersion() error

	AddUse(use string)
	RemoveUse(use string)
	GetUses() []string

	Yaml() ([]byte, error)
	Explain()

	SetPath(string)
	GetPath() string
	Rel(string) string

	GetDescription() string
	SetDescription(string)

	AddURI(string)
	GetURI() []string

	SetLicense(string)
	GetLicense() string

	AddLabel(string, string)
	GetLabels() map[string]string
	HasLabel(string) bool
	MatchLabel(*regexp.Regexp) bool

	AddAnnotation(string, interface{})
	GetAnnotations() map[string]interface{}
	HasAnnotation(string) bool
	MatchAnnotation(*regexp.Regexp) bool
	GetAnnotationByKey(k string) interface{}

	IsHidden() bool
	IsSelector() bool
	VersionMatchSelector(string, version.Versioner) (bool, error)
	SelectorMatchVersion(string, version.Versioner) (bool, error)

	String() string
	HumanReadableString() string
	HashFingerprint(string) string

	SetBuildTimestamp(s string)
	GetBuildTimestamp() string

	Clone() Package

	GetMetadataFilePath() string
	SetTreeDir(s string)
	GetTreeDir() string

	Mark() Package

	JSON() ([]byte, error)

	GetRepository() string
	SetRepository(string)
}

Package is a package interface (TBD) FIXME: Currently some of the methods are returning DefaultPackages due to JSON serialization of the package

func DecodePackage

func DecodePackage(ID string, db PackageDatabase) (Package, error)

func FromString

func FromString(s string) Package

type PackageDatabase

type PackageDatabase interface {
	PackageSet

	Get(s string) (string, error)
	Set(k, v string) error

	Create(string, []byte) (string, error)
	Retrieve(ID string) ([]byte, error)

	Close() error
}

Database is a merely simple in-memory db. FIXME: Use a proper structure or delegate to third-party

func NewBoltDatabase

func NewBoltDatabase(path string) PackageDatabase

func NewInMemoryDatabase

func NewInMemoryDatabase(singleton bool) PackageDatabase

type PackageFile

type PackageFile struct {
	ID                 int    `storm:"id,increment"` // primary key with auto increment
	PackageFingerprint string `storm:"unique"`
	Files              []string
}

type PackageFinalizer

type PackageFinalizer struct {
	ID                 int      `storm:"id,increment"` // primary key with auto increment
	PackageFingerprint string   `storm:"unique"`
	Shell              []string `json:"shell,omitempty" yaml:"shell,omitempty"`
	Install            []string `json:"install,omitempty" yaml:"install,omitempty"`
	Uninstall          []string `json:"uninstall,omitempty" yaml:"uninstall,omitempty"`
}

type PackageMap

type PackageMap map[string]Package

func (PackageMap) String

func (pm PackageMap) String() string

type PackageSet

type PackageSet interface {
	Clone(PackageDatabase) error
	Copy() (PackageDatabase, error)

	GetRevdeps(p Package) (Packages, error)
	GetPackages() []string //Ids
	CreatePackage(pkg Package) (string, error)
	GetPackage(ID string) (Package, error)
	Clean() error
	FindPackage(Package) (Package, error)
	FindPackages(p Package) (Packages, error)
	UpdatePackage(p Package) error
	GetAllPackages(packages chan Package) error
	RemovePackage(Package) error

	GetPackageFiles(Package) ([]string, error)
	SetPackageFiles(*PackageFile) error
	RemovePackageFiles(Package) error
	FindPackageVersions(p Package) (Packages, error)
	World() Packages

	// Finalizers
	GetPackageFinalizer(Package) (*PackageFinalizer, error)
	SetPackageFinalizer(*PackageFinalizer) error
	RemovePackageFinalizer(Package) error

	FindPackageCandidate(p Package) (Package, error)
	FindPackageLabel(labelKey string) (Packages, error)
	FindPackageLabelMatch(pattern string) (Packages, error)
	FindPackageMatch(pattern string) (Packages, error)
	FindPackageByFile(pattern string) (Packages, error)

	RebuildIndexes() error
}

type Packages

type Packages []Package

func (Packages) Best

func (set Packages) Best(v version.Versioner) Package

Best returns the best version of the package (the most bigger) from a list Accepts a versioner interface to change the ordering policy. If null is supplied It defaults to version.WrappedVersioner which supports both semver and debian versioning

func (Packages) Find

func (set Packages) Find(packageName string) (Package, error)

func (Packages) Unique

func (set Packages) Unique() Packages

type State

type State string

State represent the package state

type Tree

type Tree interface {
	GetPackageSet() PackageDatabase
	Prelude() string // A tree might have a prelude to be able to consume a tree
	SetPackageSet(s PackageDatabase)
	World() (Packages, error)
	FindPackage(Package) (Package, error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL