Beispiel #1
0
// saveFields appends cayley's Save method to a path for each field in
// selectedFields, except the ones that appears also in exceptFields
func saveFields(p *path.Path, selectedFields []string, exceptFields []string) {
	for _, selectedField := range selectedFields {
		if utils.Contains(selectedField, exceptFields) {
			continue
		}
		p = p.Save(selectedField, selectedField)
	}
}
Beispiel #2
0
// PreviousVersions find and returns all the packages of the same branch that
// have a lower version number, selecting the specified fields
// It requires that FieldPackageNextVersion field has been selected on p
// The immediate lower version is listed first, and the special start-of-Branch
// package is last, p is not listed
func (p *Package) PreviousVersions(selectedFields []string) ([]*Package, error) {
	var previousVersions []*Package

	if !utils.Contains(FieldPackagePreviousVersion, selectedFields) {
		selectedFields = append(selectedFields, FieldPackagePreviousVersion)
	}

	previousVersion, err := p.PreviousVersion(selectedFields)
	if err != nil {
		return []*Package{}, err
	}
	if previousVersion != nil {
		previousVersions = append(previousVersions, previousVersion)

		previousPreviousVersions, err := previousVersion.PreviousVersions(selectedFields)
		if err != nil {
			return []*Package{}, err
		}
		previousVersions = append(previousVersions, previousPreviousVersions...)
	}

	return previousVersions, nil
}
Beispiel #3
0
// NextVersions find and returns all the packages of the same branch that have
// a higher version number, selecting the specified fields
// It requires that FieldPackageNextVersion field has been selected on p
// The immediate higher version is listed first, and the special end-of-Branch package is last, p is not listed
func (p *Package) NextVersions(selectedFields []string) ([]*Package, error) {
	var nextVersions []*Package

	if !utils.Contains(FieldPackageNextVersion, selectedFields) {
		selectedFields = append(selectedFields, FieldPackageNextVersion)
	}

	nextVersion, err := p.NextVersion(selectedFields)
	if err != nil {
		return []*Package{}, err
	}
	if nextVersion != nil {
		nextVersions = append(nextVersions, nextVersion)

		nextNextVersions, err := nextVersion.NextVersions(selectedFields)
		if err != nil {
			return []*Package{}, err
		}
		nextVersions = append(nextVersions, nextNextVersions...)
	}

	return nextVersions, nil
}