Documentation ¶
Overview ¶
Package installer is the core part of the software package installation.
Index ¶
- Constants
- func FindByKeyword(keyword, configDir string) (result []string)
- func FindCategories() (result []string)
- func GetProxyServers() []string
- func IsSupport(cfg HDConfig) bool
- type CmdWithArgs
- type ConfigFile
- type DefaultFetcher
- type FakeFetcher
- type Fetcher
- type HDConfig
- type HDPackage
- type Installer
- func (o *Installer) CheckDepAndInstall(tools map[string]string) (err error)
- func (o *Installer) GetVersion(path string) (version string, err error)
- func (o *Installer) Install() (err error)
- func (o *Installer) OverWriteBinary(sourceFile, targetPath string) (err error)
- func (o *Installer) ProviderURLParse(path string, acceptPreRelease bool) (packageURL string, err error)
- type PackagingFormat
Constants ¶
const ( // ConfigGitHub is the default git repository URI ConfigGitHub = "https://github.com/LinuxSuRen/hd-home" // ConfigBranch is the default branch name of hd-home git repository ConfigBranch = "master" )
const (
// ProviderGitHub represents https://github.com
ProviderGitHub = "github"
)
Variables ¶
This section is empty.
Functions ¶
func FindByKeyword ¶ added in v0.0.56
FindByKeyword find org/repo by a keyword
func FindCategories ¶ added in v0.0.54
func FindCategories() (result []string)
FindCategories returns the whole supported categories
func GetProxyServers ¶ added in v0.0.92
func GetProxyServers() []string
GetProxyServers returns the proxy servers
Types ¶
type CmdWithArgs ¶
CmdWithArgs is a command with arguments
type ConfigFile ¶ added in v0.0.61
type ConfigFile struct { OS string `yaml:"os"` Path string `yaml:"path"` Content string `yaml:"content"` }
ConfigFile represents a config file
type DefaultFetcher ¶ added in v0.0.56
type DefaultFetcher struct {
// contains filtered or unexported fields
}
DefaultFetcher is the default fetcher which fetches the config files from a git repository
func (*DefaultFetcher) FetchLatestRepo ¶ added in v0.0.56
func (f *DefaultFetcher) FetchLatestRepo(provider string, branch string, progress io.Writer) (err error)
FetchLatestRepo fetches the hd-home as the config
func (*DefaultFetcher) GetConfigDir ¶ added in v0.0.56
func (f *DefaultFetcher) GetConfigDir() (configDir string, err error)
GetConfigDir returns the directory of the config
func (*DefaultFetcher) GetHomeDir ¶ added in v0.0.85
func (f *DefaultFetcher) GetHomeDir() (homeDir string, err error)
GetHomeDir returns the user home directory
func (*DefaultFetcher) SetContext ¶ added in v0.0.73
func (f *DefaultFetcher) SetContext(ctx context.Context)
SetContext sets the context of the fetch
type FakeFetcher ¶ added in v0.0.56
type FakeFetcher struct { ConfigDir string HomeDir string GetConfigDirErr error FetchLatestRepoErr error }
FakeFetcher is a fake fetch. We expect to use it for unit test cases.
func (*FakeFetcher) FetchLatestRepo ¶ added in v0.0.56
func (f *FakeFetcher) FetchLatestRepo(provider string, branch string, progress io.Writer) (err error)
FetchLatestRepo is a fake method
func (*FakeFetcher) GetConfigDir ¶ added in v0.0.56
func (f *FakeFetcher) GetConfigDir() (configDir string, err error)
GetConfigDir is a fake method
func (*FakeFetcher) GetHomeDir ¶ added in v0.0.85
func (f *FakeFetcher) GetHomeDir() (HomeDir string, err error)
GetHomeDir is a fake method
func (*FakeFetcher) SetContext ¶ added in v0.0.73
func (f *FakeFetcher) SetContext(ctx context.Context)
SetContext is a fake method
type Fetcher ¶ added in v0.0.56
type Fetcher interface { GetConfigDir() (configDir string, err error) GetHomeDir() (homeDir string, err error) FetchLatestRepo(provider string, branch string, progress io.Writer) (err error) SetContext(ctx context.Context) }
Fetcher is the interface of a fetcher which responses to fetch config files
type HDConfig ¶
type HDConfig struct { Name string `yaml:"name"` Categories []string `yaml:"categories"` Filename string `yaml:"filename"` FormatOverrides PackagingFormat `yaml:"formatOverrides"` Binary string `yaml:"binary"` TargetBinary string `yaml:"targetBinary"` TargetDirectory string `yaml:"targetDirectory"` AdditionBinaries []string `yaml:"additionBinaries"` FromSource bool `yaml:"fromSource"` URL string `yaml:"url"` Tar string `yaml:"tar"` LatestVersion string `yaml:"latestVersion"` SupportOS []string `yaml:"supportOS"` SupportArch []string `yaml:"supportArch"` Replacements map[string]string `yaml:"replacements"` Requirements []string `yaml:"requirements"` Installation *CmdWithArgs `yaml:"installation"` DefaultConfigFile []ConfigFile `yaml:"defaultConfigFiles"` PreInstalls []CmdWithArgs `yaml:"preInstalls"` PostInstalls []CmdWithArgs `yaml:"postInstalls"` TestInstalls []CmdWithArgs `yaml:"testInstalls"` Version string `yaml:"version"` VersionCmd string `yaml:"versionCmd"` Org, Repo string }
HDConfig is the config of http-downloader
func FindPackagesByCategory ¶ added in v0.0.53
FindPackagesByCategory returns the HDConfigs by category
type HDPackage ¶
type HDPackage struct { Name string Version string // e.g. v1.0.1 VersionNum string // e.g. 1.0.1 OS string // e.g. linux, darwin Arch string // e.g. amd64 AdditionBinaries []string }
HDPackage represents a package of http-downloader
type Installer ¶
type Installer struct { Package *HDConfig Tar bool Output string TargetDirectory string Source string Name string CleanPackage bool Provider string OS string Arch string Fetch bool AdditionBinaries []string Org string Repo string ProxyGitHub string Execer fakeruntime.Execer }
Installer is a tool to install a package
func (*Installer) CheckDepAndInstall ¶
CheckDepAndInstall checks the desired tools, install the missing packages
func (*Installer) GetVersion ¶ added in v0.0.40
GetVersion parse install app info
func (*Installer) OverWriteBinary ¶ added in v0.0.34
OverWriteBinary install a binary file
type PackagingFormat ¶ added in v0.0.43
type PackagingFormat struct { Windows string `yaml:"windows"` Linux string `yaml:"linux"` Format string }
PackagingFormat is used for containing config depending on machine
func (PackagingFormat) String ¶ added in v0.0.84
func (f PackagingFormat) String() string
String returns a pretty string