volcano.sh/volcano@v1.9.0/hack/lib/golang.sh (about) 1 #!/bin/bash 2 3 # Copyright 2014 The Kubernetes Authors. 4 # 5 # Licensed under the Apache License, Version 2.0 (the "License"); 6 # you may not use this file except in compliance with the License. 7 # You may obtain a copy of the License at 8 # 9 # http://www.apache.org/licenses/LICENSE-2.0 10 # 11 # Unless required by applicable law or agreed to in writing, software 12 # distributed under the License is distributed on an "AS IS" BASIS, 13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 # See the License for the specific language governing permissions and 15 # limitations under the License. 16 17 # Compare version numbers 18 kube::golang::version_gt() { 19 return "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; 20 } 21 22 # Ensure the go tool exists and is a viable version. 23 kube::golang::verify_go_version() { 24 if [[ -z "$(which go)" ]]; then 25 kube::log::usage_from_stdin <<EOF 26 Can't find 'go' in PATH, please fix and retry. 27 See http://golang.org/doc/install for installation instructions. 28 EOF 29 return 2 30 fi 31 32 local go_version 33 go_version=($(go version)) 34 local minimum_go_version 35 minimum_go_version=go1.12.1 36 if [[ "kube::golang::version_gt "${go_version[2]}" "${minimum_go_version}"" == 1 && "${go_version[2]}" != "devel" ]]; then 37 kube::log::usage_from_stdin <<EOF 38 Detected go version: ${go_version[*]}. 39 Kubernetes requires ${minimum_go_version} or greater. 40 Please install ${minimum_go_version} or later. 41 EOF 42 return 2 43 fi 44 }