@@ -49,9 +49,9 @@ set -o pipefail
4949
5050[[ ${GIMME_DEBUG} ]] && set -x
5151
52- GIMME_VERSION=" v1.2 .0"
53- GIMME_COPYRIGHT=" Copyright (c) 2016 Dan Buch, Tianon Gravi, Travis CI GmbH"
54- GIMME_LICENSE_URL=" https://raw.githubusercontent.com/travis-ci/gimme/v1.2 .0/LICENSE"
52+ GIMME_VERSION=" v1.3 .0"
53+ GIMME_COPYRIGHT=" Copyright (c) 2015-2018 Dan Buch, Tianon Gravi, Travis CI GmbH"
54+ GIMME_LICENSE_URL=" https://raw.githubusercontent.com/travis-ci/gimme/v1.3 .0/LICENSE"
5555export GIMME_VERSION
5656export GIMME_COPYRIGHT
5757export GIMME_LICENSE_URL
@@ -152,11 +152,11 @@ _fetch() {
152152_checkout () {
153153 _fetch " ${2} "
154154 (cd " ${2} " && {
155- git reset -q --hard " origin/${1} " \
156- || git reset -q --hard " origin/go${1} " \
157- || { [ " ${1} " = ' tip' ] && git reset -q --hard origin/master; } \
158- || git reset -q --hard " refs/tags/${1} " \
159- || git reset -q --hard " refs/tags/go${1} "
155+ git reset -q --hard " origin/${1} " ||
156+ git reset -q --hard " origin/go${1} " ||
157+ { [ " ${1} " = ' tip' ] && git reset -q --hard origin/master; } ||
158+ git reset -q --hard " refs/tags/${1} " ||
159+ git reset -q --hard " refs/tags/go${1} "
160160 } 2> /dev/null)
161161}
162162
@@ -293,18 +293,18 @@ _env_alias() {
293293
294294_try_existing () {
295295 case " ${1} " in
296- binary)
297- local existing_ver=" ${GIMME_VERSION_PREFIX} /go${GIMME_GO_VERSION} .${GIMME_OS} .${GIMME_ARCH} "
298- local existing_env=" ${GIMME_ENV_PREFIX} /go${GIMME_GO_VERSION} .${GIMME_OS} .${GIMME_ARCH} .env"
299- ;;
300- source)
301- local existing_ver=" ${GIMME_VERSION_PREFIX} /go${GIMME_GO_VERSION} .src"
302- local existing_env=" ${GIMME_ENV_PREFIX} /go${GIMME_GO_VERSION} .src.env"
303- ;;
304- * )
305- _try_existing binary || _try_existing source
306- return $?
307- ;;
296+ binary)
297+ local existing_ver=" ${GIMME_VERSION_PREFIX} /go${GIMME_GO_VERSION} .${GIMME_OS} .${GIMME_ARCH} "
298+ local existing_env=" ${GIMME_ENV_PREFIX} /go${GIMME_GO_VERSION} .${GIMME_OS} .${GIMME_ARCH} .env"
299+ ;;
300+ source)
301+ local existing_ver=" ${GIMME_VERSION_PREFIX} /go${GIMME_GO_VERSION} .src"
302+ local existing_env=" ${GIMME_ENV_PREFIX} /go${GIMME_GO_VERSION} .src.env"
303+ ;;
304+ * )
305+ _try_existing binary || _try_existing source
306+ return $?
307+ ;;
308308 esac
309309
310310 if [[ -x " ${existing_ver} /bin/go" && -s " ${existing_env} " ]]; then
@@ -398,6 +398,7 @@ _list_versions() {
398398}
399399
400400_list_known () {
401+ # shellcheck disable=SC1117
401402 local exp=" go([[:alnum:]\.]*)\.src.*" # :alnum: catches beta versions too
402403 local list=" ${GIMME_TMP} /known-versions"
403404
@@ -408,6 +409,7 @@ _list_known() {
408409
409410 while read -r line; do
410411 if [[ " ${line} " =~ ${exp} ]]; then
412+ # shellcheck disable=SC1117
411413 known=" $known \n${BASH_REMATCH[1]} "
412414 fi
413415 done < " ${list} "
@@ -451,6 +453,7 @@ _update_stable() {
451453
452454 while nextPageToken=$( jq --exit-status --raw-output ' .nextPageToken' < " $tmp_versions " ) ; do
453455 _do_curl " ${url} &pageToken=${nextPageToken} " " ${tmp_versions} "
456+ # shellcheck disable=SC1117
454457 vers=" ${vers} \n$( jq -r ' .items[].name | capture("go(?<ver>[[:digit:]\\.]*)\\.src.*").ver' < " $tmp_versions " ) "
455458 done
456459
@@ -461,12 +464,12 @@ _update_stable() {
461464_stat_unix () {
462465 local filename=" ${1} "
463466 case " ${GIMME_HOSTOS} " in
464- darwin | * bsd)
465- stat -f %a " ${filename} "
466- ;;
467- linux)
468- stat -c %Y " ${filename} "
469- ;;
467+ darwin | * bsd)
468+ stat -f %a " ${filename} "
469+ ;;
470+ linux)
471+ stat -c %Y " ${filename} "
472+ ;;
470473 esac
471474}
472475
@@ -503,24 +506,24 @@ _exclude_from_backups() {
503506 # Please avoid anything which requires elevated privileges or is obnoxious
504507 # enough to offend the invoker
505508 case " ${GIMME_HOSTOS} " in
506- darwin)
507- # Darwin: Time Machine is "standard", we can add others. The default
508- # mechanism is sticky, as an attribute on the dir, requires no
509- # privileges, is idempotent (and doesn't support -- to end flags).
510- tmutil addexclusion " $@ "
511- ;;
509+ darwin)
510+ # Darwin: Time Machine is "standard", we can add others. The default
511+ # mechanism is sticky, as an attribute on the dir, requires no
512+ # privileges, is idempotent (and doesn't support -- to end flags).
513+ tmutil addexclusion " $@ "
514+ ;;
512515 esac
513516}
514517
515518_versint () {
516- local args=( ${1// [^0-9]/ } )
519+ IFS= " " read -r -a args <<< " ${1//[^0-9]/ }"
517520 printf ' 1%03d%03d%03d%03d' " ${args[@]} "
518521}
519522
520523_to_goarch () {
521524 case " ${1} " in
522- aarch64) echo " arm64" ;;
523- * ) echo " ${1} " ;;
525+ aarch64) echo " arm64" ;;
526+ * ) echo " ${1} " ;;
524527 esac
525528}
526529
@@ -539,12 +542,12 @@ _to_goarch() {
539542
540543# The version prefix must be an absolute path
541544case " ${GIMME_VERSION_PREFIX} " in
542- /* ) true ;;
543- * )
544- echo >&2 " Fixing GIMME_VERSION_PREFIX from relative: $GIMME_VERSION_PREFIX "
545- GIMME_VERSION_PREFIX=" $( pwd) /${GIMME_VERSION_PREFIX} "
546- echo >&2 " to: $GIMME_VERSION_PREFIX "
547- ;;
545+ /* ) true ;;
546+ * )
547+ echo >&2 " Fixing GIMME_VERSION_PREFIX from relative: $GIMME_VERSION_PREFIX "
548+ GIMME_VERSION_PREFIX=" $( pwd) /${GIMME_VERSION_PREFIX} "
549+ echo >&2 " to: $GIMME_VERSION_PREFIX "
550+ ;;
548551esac
549552
550553if [[ " ${GIMME_OS} " == mingw* ]]; then
560563
561564while [[ $# -gt 0 ]]; do
562565 case " ${1} " in
563- -h | --help | help | wat)
564- _old_ifs=" $IFS "
565- IFS=' ;'
566- awk ' /^#\+ / {
566+ -h | --help | help | wat)
567+ _old_ifs=" $IFS "
568+ IFS=' ;'
569+ awk ' /^#\+ / {
567570 sub(/^#\+ /, "", $0) ;
568571 sub(/-$/, "", $0) ;
569572 print $0
570573 }' " $0 " | while read -r line; do
571- eval " echo \" $line \" "
572- done
573- IFS=" $_old_ifs "
574- exit 0
575- ;;
576- -V | --version | version)
577- echo " ${GIMME_VERSION} "
578- exit 0
579- ;;
580- -l | --list | list)
581- _list_versions
582- exit 0
583- ;;
584- -k | --known | known)
585- _list_known
586- exit 0
587- ;;
588- -f | --force | force)
589- force=1
590- ;;
591- -i | install)
592- true # ignore a dummy argument
593- ;;
594- * )
595- break
596- ;;
574+ eval " echo \" $line \" "
575+ done
576+ IFS=" $_old_ifs "
577+ exit 0
578+ ;;
579+ -V | --version | version)
580+ echo " ${GIMME_VERSION} "
581+ exit 0
582+ ;;
583+ -l | --list | list)
584+ _list_versions
585+ exit 0
586+ ;;
587+ -k | --known | known)
588+ _list_known
589+ exit 0
590+ ;;
591+ -f | --force | force)
592+ force=1
593+ ;;
594+ -i | install)
595+ true # ignore a dummy argument
596+ ;;
597+ * )
598+ break
599+ ;;
597600 esac
598601 shift
599602done
@@ -606,26 +609,26 @@ if [[ -n "${2}" ]]; then
606609fi
607610
608611case " ${GIMME_ARCH} " in
609- x86_64) GIMME_ARCH=amd64 ;;
610- x86) GIMME_ARCH=386 ;;
611- arm64)
612- if [[ " ${GIMME_GO_VERSION} " != master && " $( _versint " ${GIMME_GO_VERSION} " ) " < " $( _versint 1.5) " ]]; then
613- echo >&2 " error: ${GIMME_ARCH} is not supported by this go version"
614- echo >&2 " try go1.5 or newer"
615- exit 1
616- fi
617- if [[ " ${GIMME_HOSTOS} " == " linux" && " ${GIMME_HOSTARCH} " != " ${GIMME_ARCH} " ]]; then
618- : " ${GIMME_CC_FOR_TARGET:= " aarch64-linux-gnu-gcc" } "
619- fi
620- ;;
621- arm* ) GIMME_ARCH=arm ;;
612+ x86_64) GIMME_ARCH=amd64 ;;
613+ x86) GIMME_ARCH=386 ;;
614+ arm64)
615+ if [[ " ${GIMME_GO_VERSION} " != master && " $( _versint " ${GIMME_GO_VERSION} " ) " < " $( _versint 1.5) " ]]; then
616+ echo >&2 " error: ${GIMME_ARCH} is not supported by this go version"
617+ echo >&2 " try go1.5 or newer"
618+ exit 1
619+ fi
620+ if [[ " ${GIMME_HOSTOS} " == " linux" && " ${GIMME_HOSTARCH} " != " ${GIMME_ARCH} " ]]; then
621+ : " ${GIMME_CC_FOR_TARGET:= " aarch64-linux-gnu-gcc" } "
622+ fi
623+ ;;
624+ arm* ) GIMME_ARCH=arm ;;
622625esac
623626
624627case " ${GIMME_HOSTARCH} " in
625- x86_64) GIMME_HOSTARCH=amd64 ;;
626- x86) GIMME_HOSTARCH=386 ;;
627- arm64) ;;
628- arm* ) GIMME_HOSTARCH=arm ;;
628+ x86_64) GIMME_HOSTARCH=amd64 ;;
629+ x86) GIMME_HOSTARCH=386 ;;
630+ arm64) ;;
631+ arm* ) GIMME_HOSTARCH=arm ;;
629632esac
630633
631634if [[ " ${GIMME_GO_VERSION} " == " stable" ]]; then
@@ -665,7 +668,7 @@ if ! case "${GIMME_TYPE}" in
665668 echo >&2 " Try 'auto', 'binary', 'source', or 'git'."
666669 exit 1
667670 ;;
668- esac ; then
671+ esac ; then
669672 echo >&2 " I don't have any idea what to do with '${GIMME_GO_VERSION} '."
670673 echo >&2 " (using type '${GIMME_TYPE} ')"
671674 exit 1
0 commit comments