version

package module
v0.0.0-...-631e686 Latest Latest
Warning

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

Go to latest
Published: Jun 14, 2022 License: MIT Imports: 7 Imported by: 121

README

go-rpm-version

Build Status Coverage Status Go Report Card MIT License

A Go library for parsing rpm package versions

go-rpm-version is a library for parsing and comparing rpm versions

For the original C implementation, see: https://github.com/rpm-software-management/rpm/blob/master/lib/rpmvercmp.c#L16

OS: RedHat/CentOS

Installation and Usage

Installation can be done with a normal go get:

$ go get github.com/knqyf263/go-rpm-version

Version Parsing and Comparison

import "github.com/knqyf263/go-rpm-version"

v1, err := version.NewVersion("2:6.0-1")
v2, err := version.NewVersion("2:6.0-2.el6")

// Comparison example. There is also GreaterThan, Equal.
if v1.LessThan(v2) {
    fmt.Printf("%s is less than %s", v1, v2)
}

Version Sorting

raw := []string{"5.3p1-112", "3.6.1p2-21.sel", "3.6.1p2-22", "5.3p1-105", "3.6.1p2-21"}
vs := make([]version.Version, len(raw))
for i, r := range raw {
	v, _ := version.NewVersion(r)
	vs[i] = v
}

sort.Slice(vs, func(i, j int) bool {
	return vs[i].LessThan(vs[j])
})

Contribute

  1. fork a repository: github.com/knqyf263/go-rpm-version to github.com/you/repo
  2. get original code: go get github.com/knqyf263/go-rpm-version
  3. work on original code
  4. add remote to your repo: git remote add myfork https://github.com/you/repo.git
  5. push your changes: git push myfork
  6. create a new Pull Request

License

MIT

Author

Teppei Fukuda

Documentation

Index

Constants

View Source
const (
	LESS    = -1
	EQUAL   = 0
	GREATER = 1
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Version

type Version struct {
	// contains filtered or unexported fields
}

Version represents a package version.

func NewVersion

func NewVersion(ver string) (version Version)

NewVersion returns a parsed version

func (Version) Compare

func (v1 Version) Compare(v2 Version) int

Compare returns an integer comparing two version. The result will be 0 if v1==v2, -1 if v1 < v2, and +1 if v1 > v2.

func (*Version) Epoch

func (v *Version) Epoch() int

Epoch is a getter method that returns the epoch.

func (*Version) Equal

func (v1 *Version) Equal(v2 Version) bool

Equal returns whether this version is equal with another version.

func (*Version) GreaterThan

func (v1 *Version) GreaterThan(v2 Version) bool

GreaterThan returns whether this version is greater than another version.

func (Version) LessThan

func (v1 Version) LessThan(v2 Version) bool

LessThan returns whether this version is less than another version.

func (*Version) Release

func (v *Version) Release() string

Release is a getter method that returns the release.

func (Version) String

func (v1 Version) String() string

String returns the full version string

func (*Version) Version

func (v *Version) Version() string

Version is a getter method that returns the version.

Jump to

Keyboard shortcuts

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