@@ -17,7 +17,7 @@ PROJECT_OWNER="arduino"
17
17
PROJECT_NAME=" arduino-lint"
18
18
19
19
# BINDIR represents the local bin location, defaults to ./bin.
20
- LBINDIR =" "
20
+ EFFECTIVE_BINDIR =" "
21
21
DEFAULT_BINDIR=" $PWD /bin"
22
22
23
23
fail () {
@@ -28,16 +28,18 @@ fail() {
28
28
initDestination () {
29
29
if [ -n " $BINDIR " ]; then
30
30
if [ ! -d " $BINDIR " ]; then
31
+ # The second instance of $BINDIR is intentionally a literal in this message.
32
+ # shellcheck disable=SC2016
31
33
fail " $BINDIR " ' ($BINDIR)' " folder not found. Please create it before continuing."
32
34
fi
33
- LBINDIR =" $BINDIR "
35
+ EFFECTIVE_BINDIR =" $BINDIR "
34
36
else
35
37
if [ ! -d " $DEFAULT_BINDIR " ]; then
36
38
mkdir " $DEFAULT_BINDIR "
37
39
fi
38
- LBINDIR =" $DEFAULT_BINDIR "
40
+ EFFECTIVE_BINDIR =" $DEFAULT_BINDIR "
39
41
fi
40
- echo " Installing in $LBINDIR "
42
+ echo " Installing in $EFFECTIVE_BINDIR "
41
43
}
42
44
43
45
initArch () {
@@ -99,12 +101,12 @@ get() {
99
101
echo " Getting $GET_URL "
100
102
if [ " $DOWNLOAD_TOOL " = " curl" ]; then
101
103
GET_HTTP_RESPONSE=$( curl -sL --write-out ' HTTPSTATUS:%{http_code}' " $GET_URL " )
102
- GET_HTTP_STATUS_CODE=$( echo $GET_HTTP_RESPONSE | tr -d ' \n' | sed -e ' s/.*HTTPSTATUS://' )
104
+ GET_HTTP_STATUS_CODE=$( echo " $GET_HTTP_RESPONSE " | tr -d ' \n' | sed -e ' s/.*HTTPSTATUS://' )
103
105
GET_BODY=$( echo " $GET_HTTP_RESPONSE " | sed -e ' s/HTTPSTATUS\:.*//g' )
104
106
elif [ " $DOWNLOAD_TOOL " = " wget" ]; then
105
107
TMP_FILE=$( mktemp)
106
- GET_BODY=$( wget --server-response --content-on-error -q -O - " $GET_URL " 2> $TMP_FILE || true)
107
- GET_HTTP_STATUS_CODE=$( cat $TMP_FILE | awk ' /^ HTTP/{print $2}' )
108
+ GET_BODY=$( wget --server-response --content-on-error -q -O - " $GET_URL " 2> " $TMP_FILE " || true)
109
+ GET_HTTP_STATUS_CODE=$( awk ' /^ HTTP/{print $2}' " $TMP_FILE " )
108
110
fi
109
111
if [ " $GET_HTTP_STATUS_CODE " != 200 ]; then
110
112
echo " Request failed with HTTP status code $GET_HTTP_STATUS_CODE "
@@ -119,14 +121,14 @@ getFile() {
119
121
if [ " $DOWNLOAD_TOOL " = " curl" ]; then
120
122
GETFILE_HTTP_STATUS_CODE=$( curl -s -w ' %{http_code}' -L " $GETFILE_URL " -o " $GETFILE_FILE_PATH " )
121
123
elif [ " $DOWNLOAD_TOOL " = " wget" ]; then
122
- GETFILE_BODY= $( wget --server-response --content-on-error -q -O " $GETFILE_FILE_PATH " " $GETFILE_URL " )
123
- GETFILE_HTTP_STATUS_CODE=$( cat $TMP_FILE | awk ' /^ HTTP/{print $2}' )
124
+ wget --server-response --content-on-error -q -O " $GETFILE_FILE_PATH " " $GETFILE_URL "
125
+ GETFILE_HTTP_STATUS_CODE=$( awk ' /^ HTTP/{print $2}' " $TMP_FILE " )
124
126
fi
125
127
echo " $GETFILE_HTTP_STATUS_CODE "
126
128
}
127
129
128
130
downloadFile () {
129
- if [ -z $1 ]; then
131
+ if [ -z " $1 " ]; then
130
132
checkLatestVersion TAG
131
133
else
132
134
TAG=$1
@@ -146,7 +148,7 @@ downloadFile() {
146
148
echo " Trying to find a release using the GitHub API."
147
149
LATEST_RELEASE_URL=" https://api.github.com/repos/${PROJECT_OWNER} /$PROJECT_NAME /releases/tags/$TAG "
148
150
echo " LATEST_RELEASE_URL=$LATEST_RELEASE_URL "
149
- get LATEST_RELEASE_JSON $LATEST_RELEASE_URL
151
+ get LATEST_RELEASE_JSON " $LATEST_RELEASE_URL "
150
152
# || true forces this command to not catch error if grep does not find anything
151
153
DOWNLOAD_URL=$( echo " $LATEST_RELEASE_JSON " | grep ' browser_' | cut -d\" -f4 | grep " $ARDUINO_LINT_DIST " ) || true
152
154
if [ -z " $DOWNLOAD_URL " ]; then
@@ -168,9 +170,9 @@ installFile() {
168
170
tar xf " $ARDUINO_LINT_TMP_FILE " -C " $ARDUINO_LINT_TMP "
169
171
fi
170
172
ARDUINO_LINT_TMP_BIN=" $ARDUINO_LINT_TMP /$PROJECT_NAME "
171
- cp " $ARDUINO_LINT_TMP_BIN " " $LBINDIR "
172
- rm -rf $ARDUINO_LINT_TMP
173
- rm -f $ARDUINO_LINT_TMP_FILE
173
+ cp " $ARDUINO_LINT_TMP_BIN " " $EFFECTIVE_BINDIR "
174
+ rm -rf " $ARDUINO_LINT_TMP "
175
+ rm -f " $ARDUINO_LINT_TMP_FILE "
174
176
}
175
177
176
178
bye () {
@@ -185,19 +187,22 @@ testVersion() {
185
187
set +e
186
188
ARDUINO_LINT=" $( which $PROJECT_NAME ) "
187
189
if [ " $? " = " 1" ]; then
188
- echo " $PROJECT_NAME not found. You might want to add " $LBINDIR " to your " ' $PATH'
190
+ # $PATH is intentionally a literal in this message.
191
+ # shellcheck disable=SC2016
192
+ echo " $PROJECT_NAME not found. You might want to add \" $EFFECTIVE_BINDIR \" to your " ' $PATH'
189
193
else
190
194
# Convert to resolved, absolute paths before comparison
191
195
ARDUINO_LINT_REALPATH=" $( cd -- " $( dirname -- " $ARDUINO_LINT " ) " && pwd -P) "
192
- LBINDIR_REALPATH=" $( cd -- " $LBINDIR " && pwd -P) "
193
- if [ " $ARDUINO_LINT_REALPATH " != " $LBINDIR_REALPATH " ]; then
194
- echo " An existing $PROJECT_NAME was found at $ARDUINO_LINT . Please prepend " $LBINDIR " to your " ' $PATH' " or remove the existing one."
196
+ EFFECTIVE_BINDIR_REALPATH=" $( cd -- " $EFFECTIVE_BINDIR " && pwd -P) "
197
+ if [ " $ARDUINO_LINT_REALPATH " != " $EFFECTIVE_BINDIR_REALPATH " ]; then
198
+ # shellcheck disable=SC2016
199
+ echo " An existing $PROJECT_NAME was found at $ARDUINO_LINT . Please prepend \" $EFFECTIVE_BINDIR \" to your " ' $PATH' " or remove the existing one."
195
200
fi
196
201
fi
197
202
198
203
set -e
199
- ARDUINO_LINT_VERSION=$( $LBINDIR /$PROJECT_NAME version)
200
- echo " $ARDUINO_LINT_VERSION installed successfully in $LBINDIR "
204
+ ARDUINO_LINT_VERSION=" $( " $EFFECTIVE_BINDIR /$PROJECT_NAME " version) "
205
+ echo " $ARDUINO_LINT_VERSION installed successfully in $EFFECTIVE_BINDIR "
201
206
}
202
207
203
208
# Execution
@@ -209,6 +214,6 @@ set -e
209
214
initArch
210
215
initOS
211
216
initDownloadTool
212
- downloadFile $1
217
+ downloadFile " $1 "
213
218
installFile
214
219
testVersion
0 commit comments