version

package module
v0.0.0-...-041fdbb Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2020 License: Apache-2.0 Imports: 5 Imported by: 52

README

go-apk-version

Test Go Report Card License

A Go library for parsing apk package versions

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

The implementation is based on this implementation

OS: Alpine

Installation and Usage

Installation can be done with a normal go get:

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

Version Parsing and Comparison

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

v1, err := version.NewVersion("1.2.3")
v2, err := version.NewVersion("1.2.3-r1")

// Comparison example. You can use GreaterThan and Equal as well.
if v1.LessThan(v2) {
    fmt.Printf("%s is less than %s", v1, v2)
}

Version Sorting

raw := []string{"1.2.3", "1.2.3_alpha1", "1.2.3-r1", "1.2.4", "1.0_p9-r0"}
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-apk-version to github.com/you/repo
  2. get original code: go get github.com/knqyf263/go-apk-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

Apache License 2.0

Author

Teppei Fukuda

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Valid

func Valid(ver string) bool

Valid validates the version

Types

type Version

type Version string

Version represents a package version ref. https://gitlab.alpinelinux.org/alpine/apk-tools/-/blob/master/src/version.c

func NewVersion

func NewVersion(ver string) (Version, error)

NewVersion returns a parsed version

func (Version) Compare

func (v1 Version) Compare(v2 Version) int

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

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.

Jump to

Keyboard shortcuts

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