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.