1
1
#! /usr/bin/env bash
2
2
# shellcheck disable=SC2155
3
- # MIT License Copyright (c) 2022 ginokent https://github.com/versenv/versenv
3
+ # LISENCE: https://github.com/versenv/versenv/blob/HEAD/LICENSE
4
4
set -Eeu -o pipefail
5
5
6
6
# versenv unique
7
7
exe_filename=golangci-lint
8
- env_key_version=GOLANGCI_VERSION
8
+ env_key_version=GOLANGCI_LINT_VERSION
9
9
git_url_prefix=https://github.com/golangci/golangci-lint
10
10
11
11
GetProgramLatestStableVersion () { HeadURL " ${git_url_prefix:? } /releases/latest" | awk -F" /tag/" " /^[Ll]ocation:/ {print \$ 2}" | tr -d " [:cntrl:]" | tr -d " ^v" | tail -n 1; }
@@ -17,14 +17,9 @@ FindTargetZipDownloadURL() {
17
17
local prog_os=" ${2:? } "
18
18
local prog_arch=" ${3:? } "
19
19
local path_suffix && path_suffix=$(
20
- if ! GetURL " ${git_url_prefix:? } /releases" | grep -Eo " href=\" [^\" ]+/v?${prog_version:? } /[^\" ]*${prog_os:? } [^\" ]*${prog_arch:? } [^\" ]*\.(zip|tar|tgz|tar\.gz)" | sed ' s/href="//' ; then
21
- i=2
22
- until { GetURL " ${git_url_prefix:? } /releases?page=${i:? } " | grep -Eo " href=\" [^\" ]+/v?${prog_version:? } /[^\" ]*${prog_os:? } [^\" ]*${prog_arch:? } [^\" ]*\.(zip|tar|tgz|tar\.gz)" | sed ' s/href="//' ; }; do
23
- i=$(( i+ 1 ))
24
- done
25
- fi
20
+ GetURLs " ${git_url_prefix:? } /releases/expanded_assets/" {,v}" ${prog_version:? } " | grep -Eo " href=\" [^\" ]+/v?${prog_version:? } /[^\" ]*${prog_os:? } [^\" ]*${prog_arch:? } [^\" ]*\.(zip|tar|tgz|tar\.gz)" | sed ' s/href="//'
26
21
)
27
- echo " https://github.com/ ${path_suffix:? } "
22
+ echo " https://github.com${path_suffix:? } "
28
23
}
29
24
30
25
Unzip () {
@@ -79,22 +74,23 @@ ExecProgram() {
79
74
exec " ${prog_version_exe:? } " " $@ " < & 0
80
75
}
81
76
82
- # MIT License Copyright (c) 2021 ginokent https://github.com/rec-logger /rec.sh
77
+ # LISENCE: https://github.com/kunitsucom /rec.sh/blob/HEAD/LICENSE
83
78
# Common
79
+ if [ -t 2 ]; then REC_COLOR=true; else REC_COLOR=' ' ; fi
84
80
_recRFC3339 () { date " +%Y-%m-%dT%H:%M:%S%z" | sed " s/\(..\)$/:\1/" ; }
85
81
_recCmd () { for a in " $@ " ; do if echo " ${a:- } " | grep -Eq " [[:blank:]]" ; then printf " '%s' " " ${a:- } " ; else printf " %s " " ${a:- } " ; fi ; done | sed " s/ $//" ; }
86
82
# Color
87
- RecDefault () { test " ${REC_SEVERITY:- 0} " -gt 000 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [\\ 033[0;35m DEFAULT\\ 033[0m] \"\$ 0\"\" }" 1>&2 ; }
88
- RecDebug () { test " ${REC_SEVERITY:- 0} " -gt 100 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [\\ 033[0;34m DEBUG\\ 033[0m] \"\$ 0\"\" }" 1>&2 ; }
89
- RecInfo () { test " ${REC_SEVERITY:- 0} " -gt 200 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [\\ 033[0;32m INFO\\ 033[0m] \"\$ 0\"\" }" 1>&2 ; }
90
- RecNotice () { test " ${REC_SEVERITY:- 0} " -gt 300 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [\\ 033[0;36m NOTICE\\ 033[0m] \"\$ 0\"\" }" 1>&2 ; }
91
- RecWarning () { test " ${REC_SEVERITY:- 0} " -gt 400 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [\\ 033[0;33m WARNING\\ 033[0m] \"\$ 0\"\" }" 1>&2 ; }
92
- RecError () { test " ${REC_SEVERITY:- 0} " -gt 500 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [\\ 033[0;31m ERROR\\ 033[0m] \"\$ 0\"\" }" 1>&2 ; }
93
- RecCritical () { test " ${REC_SEVERITY:- 0} " -gt 600 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [\\ 033[0;1;31m CRITICAL\\ 033[0m] \"\$ 0\"\" }" 1>&2 ; }
94
- RecAlert () { test " ${REC_SEVERITY:- 0} " -gt 700 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [\\ 033[0;41m ALERT\\ 033[0m] \"\$ 0\"\" }" 1>&2 ; }
95
- RecEmergency () { test " ${REC_SEVERITY:- 0} " -gt 800 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [\\ 033[0;1;41mEMERGENCY \\ 033[0m] \"\$ 0\"\" }" 1>&2 ; }
83
+ RecDefault () { test " ${REC_SEVERITY:- 0} " -gt 000 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [${REC_COLOR : + \\ 033[0;35m} DEFAULT${REC_COLOR:+ \\033[0m} ] \"\$ 0\"\" }" 1>&2 ; }
84
+ RecDebug () { test " ${REC_SEVERITY:- 0} " -gt 100 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [${REC_COLOR : + \\ 033[0;34m} DEBUG${REC_COLOR:+ \\033[0m} ] \"\$ 0\"\" }" 1>&2 ; }
85
+ RecInfo () { test " ${REC_SEVERITY:- 0} " -gt 200 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [${REC_COLOR : + \\ 033[0;32m} INFO${REC_COLOR:+ \\033[0m} ] \"\$ 0\"\" }" 1>&2 ; }
86
+ RecNotice () { test " ${REC_SEVERITY:- 0} " -gt 300 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [${REC_COLOR : + \\ 033[0;36m} NOTICE${REC_COLOR:+ \\033[0m} ] \"\$ 0\"\" }" 1>&2 ; }
87
+ RecWarning () { test " ${REC_SEVERITY:- 0} " -gt 400 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [${REC_COLOR : + \\ 033[0;33m} WARNING${REC_COLOR:+ \\033[0m} ] \"\$ 0\"\" }" 1>&2 ; }
88
+ RecError () { test " ${REC_SEVERITY:- 0} " -gt 500 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [${REC_COLOR : + \\ 033[0;31m} ERROR${REC_COLOR:+ \\033[0m} ] \"\$ 0\"\" }" 1>&2 ; }
89
+ RecCritical () { test " ${REC_SEVERITY:- 0} " -gt 600 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [${REC_COLOR : + \\ 033[0;1;31m} CRITICAL${REC_COLOR:+ \\033[0m} ] \"\$ 0\"\" }" 1>&2 ; }
90
+ RecAlert () { test " ${REC_SEVERITY:- 0} " -gt 700 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [${REC_COLOR : + \\ 033[0;41m} ALERT${REC_COLOR:+ \\033[0m} ] \"\$ 0\"\" }" 1>&2 ; }
91
+ RecEmergency () { test " ${REC_SEVERITY:- 0} " -gt 800 2> /dev/null || echo " $* " | awk " {print \" $( _recRFC3339) [${REC_COLOR : + \\ 033[0;1;41m}EMERGENCY${REC_COLOR:+ \\033[0m} ] \"\$ 0\"\" }" 1>&2 ; }
96
92
RecExec () { RecInfo " $ $( _recCmd " $@ " ) " && " $@ " ; }
97
- RecRun () { _dlm=" ####R#E#C#D#E#L#I#M#I#T#E#R####" _all=$( { _out=$( " $@ " ) && _rtn=$? || _rtn=$? && printf " \n%s" " ${_dlm:? }${_out:- } " && return ${_rtn:- 0} ; } 2>&1 ) && _rtn=$? || _rtn=$? && _dlmno=$( echo " ${_all:- } " | sed -n " /${_dlm:? } /=" ) && _cmd=$( _recCmd " $@ " ) && _stdout=$( echo " ${_all:- } " | tail -n +" ${_dlmno:- 1} " | sed " s/^${_dlm:? } //" ) && _stderr=$( echo " ${_all:- } " | head -n " ${_dlmno:- 1} " | grep -v " ^${_dlm:? } " ) && RecInfo " $ ${_cmd:- } " && { [ -z " ${_stdout:- } " ] || RecInfo " ${_stdout:? } " ; } && { [ -z " ${_stderr:- } " ] || RecWarning " ${_stderr:? } " ; } && return ${_rtn:- 0} ; }
93
+ RecRun () { _dlm=" ####R#E#C#D#E#L#I#M#I#T#E#R####" && _all=$( { _out=$( " $@ " ) && _rtn=$? || _rtn=$? && printf " \n%s" " ${_dlm:? }${_out:- } " && return " ${_rtn:- 0} " ; } 2>&1 ) && _rtn=$? || _rtn=$? && _dlmno=$( echo " ${_all:- } " | sed -n " /${_dlm:? } /=" ) && _cmd=$( _recCmd " $@ " ) && _stdout=$( echo " ${_all:- } " | tail -n +" ${_dlmno:- 1} " | sed " s/^${_dlm:? } //" ) && _stderr=$( echo " ${_all:- } " | head -n " ${_dlmno:- 1} " | grep -v " ^${_dlm:? } " ) && RecInfo " $ ${_cmd:- } " && { [ -z " ${_stdout:- } " ] || RecInfo " ${_stdout:? } " ; } && { [ -z " ${_stderr:- } " ] || RecWarning " ${_stderr:? } " ; } && return " ${_rtn:- 0} " ; }
98
94
99
95
# versenv common
100
96
DownloadURL () {
@@ -110,16 +106,18 @@ DownloadURL() {
110
106
fi
111
107
}
112
108
113
- GetURL () {
114
- local url=" ${1:? } "
115
- if command -v wget > /dev/null; then
116
- wget --secure-protocol=TLSv1_2 --dns-timeout=2 --connect-timeout=2 -q -O- " ${url:? } "
117
- elif command -v curl > /dev/null; then
118
- curl --tlsv1.2 --connect-timeout 2 -fLRSs " ${url:? } "
119
- else
120
- RecCritical " command not found: curl or wget"
121
- exit 127
122
- fi
109
+ GetURLs () {
110
+ for arg in " $@ " ; do
111
+ local url=" ${arg:? } "
112
+ if command -v wget > /dev/null; then
113
+ wget --secure-protocol=TLSv1_2 --dns-timeout=2 --connect-timeout=2 -q -O- " ${url:? } "
114
+ elif command -v curl > /dev/null; then
115
+ curl --tlsv1.2 --connect-timeout 2 -fLRSs " ${url:? } "
116
+ else
117
+ RecCritical " command not found: curl or wget"
118
+ exit 127
119
+ fi
120
+ done
123
121
}
124
122
125
123
HeadURL () {
0 commit comments