version

package
v0.0.0-...-be26699 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 3, 2015 License: AGPL-3.0 Imports: 16 Imported by: 0

Documentation

Overview

The version package implements version parsing. It also acts as guardian of the current client Juju version number.

Index

Constants

This section is empty.

Variables

View Source
var Compiler = runtime.Compiler
View Source
var Current = Binary{
	Number: MustParse(version),
	Series: osVers,
	Arch:   arch.HostArch(),
	OS:     MustOSFromSeries(osVers),
}

Current gives the current version of the system. If the file "FORCE-VERSION" is present in the same directory as the running binary, it will override this.

View Source
var Zero = Number{}

Zero is occasionally convenient and readable. Please don't change its value.

Functions

func IsUnknownOSForSeriesError

func IsUnknownOSForSeriesError(err error) bool

IsUnknownOSForSeriesError returns true if err is of type unknownOSForSeriesError.

func IsUnknownSeriesVersionError

func IsUnknownSeriesVersionError(err error) bool

IsUnknownSeriesVersionError returns true if err is of type unknownSeriesVersionError.

func OSSupportedSeries

func OSSupportedSeries(os OSType) []string

OSSupportedSeries returns the series of the specified OS on which we can run Juju workloads.

func ParseMajorMinor

func ParseMajorMinor(vers string) (int, int, error)

ParseMajorMinor takes an argument of the form "major.minor" and returns ints major and minor.

func ReleaseVersion

func ReleaseVersion() string

ReleaseVersion looks for the value of VERSION_ID in the content of the os-release. If the value is not found, the file is not found, or an error occurs reading the file, an empty string is returned.

func SeriesVersion

func SeriesVersion(series string) (string, error)

SeriesVersion returns the version for the specified series.

func SupportedSeries

func SupportedSeries() []string

SupportedSeries returns the series on which we can run Juju workloads.

Types

type Binary

type Binary struct {
	Number
	Series string
	Arch   string
	OS     OSType
}

Binary specifies a binary version of juju.

func MustParseBinary

func MustParseBinary(s string) Binary

MustParseBinary parses a binary version and panics if it does not parse correctly.

func ParseBinary

func ParseBinary(s string) (Binary, error)

ParseBinary parses a binary version of the form "1.2.3-series-arch".

func (Binary) GetBSON

func (v Binary) GetBSON() (interface{}, error)

GetBSON turns v into a bson.Getter so it can be saved directly on a MongoDB database with mgo.

func (Binary) GetYAML

func (v Binary) GetYAML() (tag string, value interface{})

GetYAML implements goyaml.Getter

func (Binary) MarshalJSON

func (v Binary) MarshalJSON() ([]byte, error)

func (*Binary) SetBSON

func (vp *Binary) SetBSON(raw bson.Raw) error

SetBSON turns v into a bson.Setter so it can be loaded directly from a MongoDB database with mgo.

func (*Binary) SetYAML

func (vp *Binary) SetYAML(tag string, value interface{}) bool

SetYAML implements goyaml.Setter

func (Binary) String

func (v Binary) String() string

func (*Binary) UnmarshalJSON

func (vp *Binary) UnmarshalJSON(data []byte) error

type Number

type Number struct {
	Major int
	Minor int
	Tag   string
	Patch int
	Build int
}

Number represents a juju version. When bugs are fixed the patch number is incremented; when new features are added the minor number is incremented and patch is reset; and when compatibility is broken the major version is incremented and minor and patch are reset. The build number is automatically assigned and has no well defined sequence. If the build number is greater than zero or the tag is non-empty it indicates that the release is still in development. For versions older than 1.19.3, development releases were indicated by an odd Minor number of any non-zero build number.

func MustParse

func MustParse(s string) Number

MustParse parses a version and panics if it does not parse correctly.

func Parse

func Parse(s string) (Number, error)

Parse parses the version, which is of the form 1.2.3 giving the major, minor and release versions respectively.

func (Number) Compare

func (v Number) Compare(w Number) int

Compare returns -1, 0 or 1 depending on whether v is less than, equal to or greater than w.

func (Number) GetBSON

func (v Number) GetBSON() (interface{}, error)

GetBSON turns v into a bson.Getter so it can be saved directly on a MongoDB database with mgo.

func (Number) GetYAML

func (v Number) GetYAML() (tag string, value interface{})

GetYAML implements goyaml.Getter

func (Number) IsDev

func (v Number) IsDev() bool

IsDev returns whether the version represents a development version. A version with a tag or a nonzero build component is considered to be a development version. Versions older than or equal to 1.19.3 (the switch over time) check for odd minor versions.

func (Number) MarshalJSON

func (v Number) MarshalJSON() ([]byte, error)

func (*Number) SetBSON

func (vp *Number) SetBSON(raw bson.Raw) error

SetBSON turns v into a bson.Setter so it can be loaded directly from a MongoDB database with mgo.

func (*Number) SetYAML

func (vp *Number) SetYAML(tag string, value interface{}) bool

SetYAML implements goyaml.Setter

func (Number) String

func (v Number) String() string

func (*Number) UnmarshalJSON

func (vp *Number) UnmarshalJSON(data []byte) error

type OSType

type OSType int
const (
	Unknown OSType = iota
	Ubuntu
	Windows
	OSX
	CentOS
)

func GetOSFromSeries

func GetOSFromSeries(series string) (OSType, error)

GetOSFromSeries will return the operating system based on the series that is passed to it

func MustOSFromSeries

func MustOSFromSeries(series string) OSType

MustOSFromSeries will panic if the series represents an "unknown" operating system

func (OSType) String

func (t OSType) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL