diff options
Diffstat (limited to 'modules/git/version.go')
-rw-r--r-- | modules/git/version.go | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/modules/git/version.go b/modules/git/version.go deleted file mode 100644 index 9940518abb..0000000000 --- a/modules/git/version.go +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright 2014 The Gogs Authors. All rights reserved. -// Use of this source code is governed by a MIT-style -// license that can be found in the LICENSE file. - -package git - -import ( - "errors" - "fmt" - "strings" - - "github.com/Unknwon/com" -) - -var ( - // Cached Git version. - gitVer *Version -) - -// Version represents version of Git. -type Version struct { - Major, Minor, Patch int -} - -func ParseVersion(verStr string) (*Version, error) { - infos := strings.Split(verStr, ".") - if len(infos) < 3 { - return nil, errors.New("incorrect version input") - } - - v := &Version{} - for i, s := range infos { - switch i { - case 0: - v.Major, _ = com.StrTo(s).Int() - case 1: - v.Minor, _ = com.StrTo(s).Int() - case 2: - v.Patch, _ = com.StrTo(strings.TrimSpace(s)).Int() - } - } - return v, nil -} - -func MustParseVersion(verStr string) *Version { - v, _ := ParseVersion(verStr) - return v -} - -// Compare compares two versions, -// it returns 1 if original is greater, -1 if original is smaller, 0 if equal. -func (v *Version) Compare(that *Version) int { - if v.Major > that.Major { - return 1 - } else if v.Major < that.Major { - return -1 - } - - if v.Minor > that.Minor { - return 1 - } else if v.Minor < that.Minor { - return -1 - } - - if v.Patch > that.Patch { - return 1 - } else if v.Patch < that.Patch { - return -1 - } - - return 0 -} - -func (v *Version) LessThan(that *Version) bool { - return v.Compare(that) < 0 -} - -func (v *Version) AtLeast(that *Version) bool { - return v.Compare(that) >= 0 -} - -func (v *Version) String() string { - return fmt.Sprintf("%d.%d.%d", v.Major, v.Minor, v.Patch) -} - -// GetVersion returns current Git version installed. -func GetVersion() (*Version, error) { - if gitVer != nil { - return gitVer, nil - } - - stdout, stderr, err := com.ExecCmd("git", "version") - if err != nil { - return nil, errors.New(stderr) - } - - infos := strings.Split(stdout, " ") - if len(infos) < 3 { - return nil, errors.New("not enough output") - } - - gitVer, err = ParseVersion(infos[2]) - return gitVer, err -} |