Blame vendor/github.com/vmware/govmomi/govc/flags/version.go

Packit Service 4d2de5
/*
Packit Service 4d2de5
Copyright (c) 2014-2020 VMware, Inc. All Rights Reserved.
Packit Service 4d2de5
Packit Service 4d2de5
Licensed under the Apache License, Version 2.0 (the "License");
Packit Service 4d2de5
you may not use this file except in compliance with the License.
Packit Service 4d2de5
You may obtain a copy of the License at
Packit Service 4d2de5
Packit Service 4d2de5
    http://www.apache.org/licenses/LICENSE-2.0
Packit Service 4d2de5
Packit Service 4d2de5
Unless required by applicable law or agreed to in writing, software
Packit Service 4d2de5
distributed under the License is distributed on an "AS IS" BASIS,
Packit Service 4d2de5
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit Service 4d2de5
See the License for the specific language governing permissions and
Packit Service 4d2de5
limitations under the License.
Packit Service 4d2de5
*/
Packit Service 4d2de5
Packit Service 4d2de5
package flags
Packit Service 4d2de5
Packit Service 4d2de5
import (
Packit Service 4d2de5
	"strconv"
Packit Service 4d2de5
	"strings"
Packit Service 4d2de5
)
Packit Service 4d2de5
Packit Service 4d2de5
const Version = "0.23.0"
Packit Service 4d2de5
Packit Service 4d2de5
var GitVersion string
Packit Service 4d2de5
Packit Service 4d2de5
type version []int
Packit Service 4d2de5
Packit Service 4d2de5
func ParseVersion(s string) (version, error) {
Packit Service 4d2de5
	v := make(version, 0)
Packit Service 4d2de5
	ds := strings.Split(s, "-")
Packit Service 4d2de5
	ps := strings.Split(ds[0], ".")
Packit Service 4d2de5
	for _, p := range ps {
Packit Service 4d2de5
		i, err := strconv.Atoi(p)
Packit Service 4d2de5
		if err != nil {
Packit Service 4d2de5
			return nil, err
Packit Service 4d2de5
		}
Packit Service 4d2de5
Packit Service 4d2de5
		v = append(v, i)
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	return v, nil
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (v version) Lte(u version) bool {
Packit Service 4d2de5
	lv := len(v)
Packit Service 4d2de5
	lu := len(u)
Packit Service 4d2de5
Packit Service 4d2de5
	for i := 0; i < lv; i++ {
Packit Service 4d2de5
		// Everything up to here has been equal and v has more elements than u.
Packit Service 4d2de5
		if i >= lu {
Packit Service 4d2de5
			return false
Packit Service 4d2de5
		}
Packit Service 4d2de5
Packit Service 4d2de5
		// Move to next digit if equal.
Packit Service 4d2de5
		if v[i] == u[i] {
Packit Service 4d2de5
			continue
Packit Service 4d2de5
		}
Packit Service 4d2de5
Packit Service 4d2de5
		return v[i] < u[i]
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	// Equal.
Packit Service 4d2de5
	return true
Packit Service 4d2de5
}