Documentation
¶
Index ¶
- Constants
- Variables
- type Config
- type DummyManager
- func (manager *DummyManager) Add(name string, url string) error
- func (manager *DummyManager) Config() *Config
- func (manager *DummyManager) FetchFromDownloadURL(pkg Package, version string, cacheDir string) (path string, err error)
- func (manager *DummyManager) GetCounter(name string) int
- func (manager *DummyManager) Info(name string) error
- func (manager *DummyManager) Init() error
- func (manager *DummyManager) Install(name string, force bool) error
- func (manager *DummyManager) Installed() error
- func (manager *DummyManager) List() error
- func (manager *DummyManager) LoadState() error
- func (manager *DummyManager) Migrate() error
- func (manager *DummyManager) Outdated() error
- func (manager *DummyManager) Remove(name string) error
- func (manager *DummyManager) ResetCounters()
- func (manager *DummyManager) SaveState() error
- func (manager *DummyManager) SetT(t *testing.T)
- func (manager *DummyManager) Update(packageNames []string) error
- type GithubConfig
- type GithubProvider
- type Manager
- type ManagerCreateFunc
- type ManagerImpl
- func (manager *ManagerImpl) Add(name string, url string) error
- func (manager *ManagerImpl) Config() *Config
- func (manager *ManagerImpl) FetchFromDownloadURL(pkg Package, version string, cacheDir string) (path string, err error)
- func (manager *ManagerImpl) Info(name string) error
- func (manager *ManagerImpl) Init() error
- func (manager *ManagerImpl) Install(name string, force bool) (err error)
- func (manager *ManagerImpl) Installed() error
- func (manager *ManagerImpl) List() error
- func (manager *ManagerImpl) LoadState() error
- func (manager *ManagerImpl) Migrate() error
- func (manager *ManagerImpl) Outdated() error
- func (manager *ManagerImpl) Remove(pkgname string) error
- func (manager *ManagerImpl) SaveState() error
- func (manager *ManagerImpl) Update(packageNames []string) (err error)
- type NewPackageProviderFunc
- type Package
- type PackageProvider
- type PackageV1
- type PackageV2
- type SchemaVersion
- type StateFile
- type TestManager
Constants ¶
View Source
const (
PackageSchemaVersion = 2
)
View Source
const (
StateFileVersion = 1
)
Variables ¶
View Source
var ( ErrPackageNotFound = errors.New("package not found") ErrPackageLoadError = errors.New("cannot load package") ErrPackageNotInstalled = errors.New("package is not installed") ErrPackageRemove = errors.New("cannot remove package") ErrProviderNotFound = errors.New("package provider not found") ErrProviderConfig = errors.New("provider config is not valid") ErrProvider = errors.New("provider error") ErrProviderFetch = errors.New("error fetching package") ErrMigrateNeeded = fmt.Errorf("migration needed. Call `%s migrate` to migrate files", os.Args[0]) ErrUnknownStateFileVersion = errors.New("unknown state file version") ErrUnknownPackageFileVersion = errors.New("unknown package file version") ErrConfigLoad = errors.New("cannot load config file") ErrYamlDump = errors.New("cannot dump content as yaml") ErrManagerCreate = errors.New("cannot create new manager") )
View Source
var (
DefaultConfigPaths = []string{
"config.yaml",
"~/.config/bpm/config.yaml",
}
)
View Source
var PackageProviders = make(map[string]NewPackageProviderFunc)
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
BinFolder string `yaml:"bin_folder"`
StateFolder string `yaml:"state_folder"`
PackagesFolder string `yaml:"packages_folder"`
Quiet bool `yaml:"quiet"`
Github GithubConfig `yaml:"github"`
}
func ReadConfig ¶
type DummyManager ¶
func (*DummyManager) Config ¶
func (manager *DummyManager) Config() *Config
func (*DummyManager) FetchFromDownloadURL ¶
func (*DummyManager) GetCounter ¶
func (manager *DummyManager) GetCounter(name string) int
func (*DummyManager) Info ¶
func (manager *DummyManager) Info(name string) error
func (*DummyManager) Init ¶
func (manager *DummyManager) Init() error
func (*DummyManager) Installed ¶
func (manager *DummyManager) Installed() error
func (*DummyManager) List ¶
func (manager *DummyManager) List() error
func (*DummyManager) LoadState ¶
func (manager *DummyManager) LoadState() error
func (*DummyManager) Migrate ¶
func (manager *DummyManager) Migrate() error
func (*DummyManager) Outdated ¶
func (manager *DummyManager) Outdated() error
func (*DummyManager) Remove ¶
func (manager *DummyManager) Remove(name string) error
func (*DummyManager) ResetCounters ¶
func (manager *DummyManager) ResetCounters()
func (*DummyManager) SaveState ¶
func (manager *DummyManager) SaveState() error
func (*DummyManager) SetT ¶
func (manager *DummyManager) SetT(t *testing.T)
func (*DummyManager) Update ¶
func (manager *DummyManager) Update(packageNames []string) error
type GithubConfig ¶
type GithubProvider ¶
type GithubProvider struct {
// contains filtered or unexported fields
}
func (*GithubProvider) FetchPackage ¶
type Manager ¶
type Manager interface {
Config() *Config
Init() error
SaveState() error
LoadState() error
Info(name string) error
Remove(name string) error
List() error
Installed() error
Add(name string, url string) error
Outdated() error
Install(name string, force bool) error
Update(packageNames []string) error
Migrate() error
FetchFromDownloadURL(pkg Package, version string, cacheDir string) (path string, err error)
}
func NewDummyManager ¶
type ManagerCreateFunc ¶
type ManagerImpl ¶
type ManagerImpl struct {
StateFile *StateFile
Providers map[string]PackageProvider
Packages map[string]Package
// contains filtered or unexported fields
}
func (*ManagerImpl) Config ¶
func (manager *ManagerImpl) Config() *Config
func (*ManagerImpl) FetchFromDownloadURL ¶
func (*ManagerImpl) Info ¶
func (manager *ManagerImpl) Info(name string) error
func (*ManagerImpl) Init ¶
func (manager *ManagerImpl) Init() error
func (*ManagerImpl) Install ¶
func (manager *ManagerImpl) Install(name string, force bool) (err error)
func (*ManagerImpl) Installed ¶
func (manager *ManagerImpl) Installed() error
func (*ManagerImpl) List ¶
func (manager *ManagerImpl) List() error
func (*ManagerImpl) LoadState ¶
func (manager *ManagerImpl) LoadState() error
func (*ManagerImpl) Migrate ¶
func (manager *ManagerImpl) Migrate() error
func (*ManagerImpl) Outdated ¶
func (manager *ManagerImpl) Outdated() error
func (*ManagerImpl) Remove ¶
func (manager *ManagerImpl) Remove(pkgname string) error
func (*ManagerImpl) SaveState ¶
func (manager *ManagerImpl) SaveState() error
func (*ManagerImpl) Update ¶
func (manager *ManagerImpl) Update(packageNames []string) (err error)
type NewPackageProviderFunc ¶
type NewPackageProviderFunc = func(logger zerolog.Logger, config *Config) PackageProvider
type Package ¶
type Package struct {
PackageV2 `yaml:",inline"`
}
func (*Package) SetDefaults ¶
func (pkg *Package) SetDefaults()
func (*Package) UnmarshalYAML ¶
type PackageProvider ¶
type PackageProvider interface {
GetLatest(pkg Package) (version string, err error)
FetchPackage(pkg Package, version string, cacheDir string) (path string, err error)
}
func NewGithubProvider ¶
func NewGithubProvider(logger zerolog.Logger, config *Config) PackageProvider
type PackageV1 ¶
type PackageV1 struct {
SchemaVersion int `yaml:"schema_version" default:"1"`
Name string `yaml:"name"`
Provider string `yaml:"provider"`
URL string `yaml:"url"`
GOOS string `yaml:"goos"`
GOARCH string `yaml:"goarch"`
AssetPattern string `yaml:"asset_pattern" default:"${goos}-${goarch}"`
ArchiveFormat string `yaml:"archive_format" default:""`
BinPattern string `yaml:"bin_pattern" default:"${name}"`
DownloadURL string `yaml:"download_url" default:""`
}
type PackageV2 ¶
type PackageV2 struct {
SchemaVersion int `yaml:"schema_version" default:"1"`
Name string `yaml:"name"`
Provider string `yaml:"provider"`
URL string `yaml:"url"`
GOOS map[string]string `yaml:"goos"`
GOARCH map[string]string `yaml:"goarch"`
AssetPattern string `yaml:"asset_pattern" default:"${goos}-${goarch}"`
ArchiveFormat string `yaml:"archive_format" default:""`
BinPattern string `yaml:"bin_pattern" default:"${name}"`
DownloadURL string `yaml:"download_url" default:""`
TagFilter string `yaml:"tag_filter" default:""`
PreReleases bool `yaml:"pre_releases"`
}
type SchemaVersion ¶
type SchemaVersion struct {
Version int
}
type TestManager ¶
Source Files
¶
Click to show internal directories.
Click to hide internal directories.