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 Uninstall Action
pkg profiles, const V2 Version
pkg profiles, const V3 Version
pkg profiles, const V4 Version
pkg profiles, func AtomicAction(*jiri.X, func() error, string, string) error
pkg profiles, func DefaultTarget() Target
pkg profiles, func Fetch(*jiri.X, string, string) error
pkg profiles, func FindTarget(Targets, *Target) *Target
pkg profiles, func FindTargetWithDefault(Targets, *Target) *Target
pkg profiles, func InsertTarget(Targets, *Target) Targets
pkg profiles, func InstallPackages(*jiri.X, []string) error
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 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 Unzip(*jiri.X, string, string) error
pkg profiles, method (*DB) AddProfileTarget(string, Target) error
pkg profiles, method (*DB) EnvFromProfile(string, Target) []string
pkg profiles, method (*DB) Filename() string
pkg profiles, method (*DB) InstallProfile(string, string) *Profile
pkg profiles, method (*DB) LookupProfile(string) *Profile
pkg profiles, method (*DB) LookupProfileTarget(string, Target) *Target
pkg profiles, method (*DB) Names() []string
pkg profiles, method (*DB) Profiles() []*Profile
pkg profiles, method (*DB) Read(*jiri.X, string) error
pkg profiles, method (*DB) RemoveProfileTarget(string, Target) bool
pkg profiles, method (*DB) SchemaVersion() Version
pkg profiles, method (*DB) UpdateProfileTarget(string, Target) error
pkg profiles, method (*DB) Write(*jiri.X, string) 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) 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 (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, 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, 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
