pkg profiles, const DefaultDirPerm os.FileMode
pkg profiles, const DefaultFilePerm os.FileMode
pkg profiles, const Install Action
pkg profiles, const Original Version
pkg profiles, const SkipProfiles ProfilesMode
pkg profiles, const Uninstall Action
pkg profiles, const UseProfiles ProfilesMode
pkg profiles, const V2 Version
pkg profiles, const V3 Version
pkg profiles, func AddProfileTarget(string, Target) error
pkg profiles, func AtomicAction(*tool.Context, func() error, string, string) error
pkg profiles, func CommonConcatVariables() map[string]string
pkg profiles, func CommonIgnoreVariables() map[string]bool
pkg profiles, func DefaultTarget() Target
pkg profiles, func EnsureProfileTargetIsInstalled(*tool.Context, string, Target, string) error
pkg profiles, func EnsureProfileTargetIsUninstalled(*tool.Context, string, Target, string) error
pkg profiles, func FindTarget(OrderedTargets, *Target) *Target
pkg profiles, func FindTargetByTag(OrderedTargets, *Target) *Target
pkg profiles, func FindTargetWithDefault(OrderedTargets, *Target) *Target
pkg profiles, func GitCloneRepo(*tool.Context, string, string, string, os.FileMode) error
pkg profiles, func GoEnvironmentFromOS() []string
pkg profiles, func InsertTarget(OrderedTargets, *Target) OrderedTargets
pkg profiles, func InstallPackages(*tool.Context, []string) error
pkg profiles, func InstallProfile(string, string)
pkg profiles, func LookupManager(string) Manager
pkg profiles, func LookupProfile(string) *Profile
pkg profiles, func LookupProfileTarget(string, Target) *Target
pkg profiles, func Managers() []string
pkg profiles, func MergeEnv(map[string]string, map[string]bool, *envvar.Vars, ...[]string)
pkg profiles, func MergeEnvFromProfiles(map[string]string, map[string]bool, *envvar.Vars, Target, ...string) ([]string, error)
pkg profiles, func NativeTarget() Target
pkg profiles, func NewConfigHelper(*tool.Context, ProfilesMode, string) (*ConfigHelper, error)
pkg profiles, func NewTarget(string) (Target, error)
pkg profiles, func NewTargetWithEnv(string, string) (Target, error)
pkg profiles, func NewVersionInfo(string, map[string]interface{}, string) *VersionInfo
pkg profiles, func Profiles() []string
pkg profiles, func Read(*tool.Context, string) error
pkg profiles, func Register(string, Manager)
pkg profiles, func RegisterManifestFlag(*flag.FlagSet, *string, string)
pkg profiles, func RegisterProfileFlags(*flag.FlagSet, *ProfilesMode, *string, *string, string, *Target)
pkg profiles, func RegisterTargetAndEnvFlags(*flag.FlagSet, *Target)
pkg profiles, func RegisterTargetFlag(*flag.FlagSet, *Target)
pkg profiles, func RemoveProfileTarget(string, Target) bool
pkg profiles, func RemoveTarget(OrderedTargets, *Target) OrderedTargets
pkg profiles, func RunCommand(*tool.Context, map[string]string, string, ...string) error
pkg profiles, func SchemaVersion() Version
pkg profiles, func UnsetGoEnvMap(map[string]string)
pkg profiles, func UnsetGoEnvVars(*envvar.Vars)
pkg profiles, func UpdateProfileTarget(string, Target) error
pkg profiles, func Write(*tool.Context, string) error
pkg profiles, method (*ConfigHelper) LegacyProfiles() bool
pkg profiles, method (*ConfigHelper) PrependToPATH(string)
pkg profiles, method (*ConfigHelper) Root() string
pkg profiles, method (*ConfigHelper) SetEnvFromProfiles(map[string]string, map[string]bool, string, Target)
pkg profiles, method (*ConfigHelper) SetGoPath()
pkg profiles, method (*ConfigHelper) SetVDLPath()
pkg profiles, method (*ConfigHelper) SkippingProfiles() bool
pkg profiles, method (*ConfigHelper) ValidateRequestedProfilesAndTarget([]string, Target) error
pkg profiles, method (*Environment) Get() interface{}
pkg profiles, method (*Environment) Set(string) error
pkg profiles, method (*Environment) String() string
pkg profiles, method (*Environment) Usage() string
pkg profiles, method (*Profile) Targets() OrderedTargets
pkg profiles, method (*ProfilesMode) Get() interface{}
pkg profiles, method (*ProfilesMode) IsBoolFlag() bool
pkg profiles, method (*ProfilesMode) Set(string) error
pkg profiles, method (*ProfilesMode) String() string
pkg profiles, method (*Target) Arch() string
pkg profiles, method (*Target) Less(*Target) bool
pkg profiles, method (*Target) OS() string
pkg profiles, method (*Target) Set(string) error
pkg profiles, method (*Target) SetVersion(string)
pkg profiles, method (*Target) Tag() string
pkg profiles, method (*Target) TargetSpecificDirname() string
pkg profiles, method (*Target) Usage() string
pkg profiles, method (*Target) Version() string
pkg profiles, method (*VersionInfo) Default() string
pkg profiles, method (*VersionInfo) IsNewerThanDefault(string) bool
pkg profiles, method (*VersionInfo) IsOlderThanDefault(string) bool
pkg profiles, method (*VersionInfo) Lookup(string, interface{}) error
pkg profiles, method (*VersionInfo) Select(string) (string, error)
pkg profiles, method (*VersionInfo) String() string
pkg profiles, method (*VersionInfo) Supported() []string
pkg profiles, method (OrderedTargets) Len() int
pkg profiles, method (OrderedTargets) Less(int, int) bool
pkg profiles, method (OrderedTargets) Sort()
pkg profiles, method (OrderedTargets) Swap(int, int)
pkg profiles, method (Target) CommandLineEnv() Environment
pkg profiles, method (Target) CrossCompiling() bool
pkg profiles, method (Target) DebugString() string
pkg profiles, method (Target) Get() interface{}
pkg profiles, method (Target) IsSet() bool
pkg profiles, method (Target) Match(*Target) bool
pkg profiles, method (Target) String() string
pkg profiles, type Action int
pkg profiles, type ConfigHelper struct
pkg profiles, type ConfigHelper struct, embedded *envvar.Vars
pkg profiles, type Environment struct
pkg profiles, type Environment struct, Vars []string
pkg profiles, type Manager interface { AddFlags, Info, Install, Name, Root, SetRoot, String, Uninstall, VersionInfo }
pkg profiles, type Manager interface, AddFlags(*flag.FlagSet, Action)
pkg profiles, type Manager interface, Info() string
pkg profiles, type Manager interface, Install(*tool.Context, Target) error
pkg profiles, type Manager interface, Name() string
pkg profiles, type Manager interface, Root() string
pkg profiles, type Manager interface, SetRoot(string)
pkg profiles, type Manager interface, String() string
pkg profiles, type Manager interface, Uninstall(*tool.Context, Target) error
pkg profiles, type Manager interface, VersionInfo() *VersionInfo
pkg profiles, type OrderedTargets []*Target
pkg profiles, type Profile struct
pkg profiles, type Profile struct, Name string
pkg profiles, type Profile struct, Root string
pkg profiles, type ProfilesMode bool
pkg profiles, type Target struct
pkg profiles, type Target struct, Env Environment
pkg profiles, type Target struct, InstallationDir string
pkg profiles, type Target struct, UpdateTime time.Time
pkg profiles, type Version int
pkg profiles, type VersionInfo struct
pkg profiles, var GoFlags []string
