github.com/liamawhite/cli-with-i18n@v6.32.1-0.20171122084555-dede0a5c3448+incompatible/command/minimum_version_check.go (about)

     1  package command
     2  
     3  import (
     4  	"github.com/blang/semver"
     5  	"github.com/liamawhite/cli-with-i18n/command/translatableerror"
     6  	"github.com/liamawhite/cli-with-i18n/version"
     7  )
     8  
     9  func MinimumAPIVersionCheck(current string, minimum string, customCommand ...string) error {
    10  	if current == version.DefaultVersion || minimum == "" {
    11  		return nil
    12  	}
    13  
    14  	currentSemvar, err := semver.Make(current)
    15  	if err != nil {
    16  		return err
    17  	}
    18  
    19  	minimumSemvar, err := semver.Make(minimum)
    20  	if err != nil {
    21  		return err
    22  	}
    23  
    24  	var command string
    25  	if len(customCommand) > 0 {
    26  		command = customCommand[0]
    27  	}
    28  
    29  	if currentSemvar.Compare(minimumSemvar) == -1 {
    30  		return translatableerror.MinimumAPIVersionNotMetError{
    31  			Command:        command,
    32  			CurrentVersion: current,
    33  			MinimumVersion: minimum,
    34  		}
    35  	}
    36  
    37  	return nil
    38  }