pkg profiles, const Install Action
pkg profiles, const InstallerSeparator ideal-string
pkg profiles, const Original Version
pkg profiles, const Uninstall Action
pkg profiles, const V2 Version
pkg profiles, const V3 Version
pkg profiles, const V4 Version
pkg profiles, const V5 Version
pkg profiles, func DefaultTarget() Target
pkg profiles, func FindTarget(Targets, *Target) *Target
pkg profiles, func FindTargetWithDefault(Targets, *Target) *Target
pkg profiles, func InsertTarget(Targets, *Target) Targets
pkg profiles, func NativeTarget() Target
pkg profiles, func NewDB() *DB
pkg profiles, func NewTarget(string, ...string) (Target, error)
pkg profiles, func NewVersionInfo(string, map[string]interface{}, string) *VersionInfo
pkg profiles, func QualifiedProfileName(string, string) string
pkg profiles, func RegisterProfilesFlag(*flag.FlagSet, *string)
pkg profiles, func RegisterTargetAndEnvFlags(*flag.FlagSet, *Target)
pkg profiles, func RegisterTargetFlag(*flag.FlagSet, *Target)
pkg profiles, func RemoveTarget(Targets, *Target) Targets
pkg profiles, func SplitProfileName(string) (string, string)
pkg profiles, method (*DB) AddProfileTarget(string, string, Target) error
pkg profiles, method (*DB) EnvFromProfile(string, string, Target) []string
pkg profiles, method (*DB) InstallProfile(string, string, string) *Profile
pkg profiles, method (*DB) LookupProfile(string, string) *Profile
pkg profiles, method (*DB) LookupProfileTarget(string, string, Target) *Target
pkg profiles, method (*DB) Names() []string
pkg profiles, method (*DB) Path() string
pkg profiles, method (*DB) Profiles() []*Profile
pkg profiles, method (*DB) Read(*jiri.X, string) error
pkg profiles, method (*DB) RemoveProfileTarget(string, string, Target) bool
pkg profiles, method (*DB) SchemaVersion() Version
pkg profiles, method (*DB) UpdateProfileTarget(string, string, Target) error
pkg profiles, method (*DB) Write(*jiri.X, string, string) error
pkg profiles, method (*Environment) Get() interface{}
pkg profiles, method (*Environment) Set(string) error
pkg profiles, method (*Profile) Name() string
pkg profiles, method (*Profile) Root() string
pkg profiles, method (*Profile) Targets() Targets
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) TargetSpecificDirname() string
pkg profiles, method (*Target) Usage() string
pkg profiles, method (*Target) UseCommandLineEnv()
pkg profiles, method (*Target) Version() string
pkg profiles, method (*VersionInfo) Default() string
pkg profiles, method (*VersionInfo) IsTargetNewerThanDefault(string) bool
pkg profiles, method (*VersionInfo) IsTargetOlderThanDefault(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 (Environment) String() string
pkg profiles, method (Environment) Usage() string
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, method (Targets) Len() int
pkg profiles, method (Targets) Less(int, int) bool
pkg profiles, method (Targets) Sort()
pkg profiles, method (Targets) Swap(int, int)
pkg profiles, type Action int
pkg profiles, type DB struct
pkg profiles, type Environment struct
pkg profiles, type Environment struct, Vars []string
pkg profiles, type Manager interface { AddFlags, Info, Install, Installer, Name, 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(*jiri.X, *DB, jiri.RelPath, Target) error
pkg profiles, type Manager interface, Installer() string
pkg profiles, type Manager interface, Name() string
pkg profiles, type Manager interface, String() string
pkg profiles, type Manager interface, Uninstall(*jiri.X, *DB, jiri.RelPath, Target) error
pkg profiles, type Manager interface, VersionInfo() *VersionInfo
pkg profiles, type Profile struct
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 Targets []*Target
pkg profiles, type Version int
pkg profiles, type VersionInfo struct
