@@ -22,7 +22,10 @@ CLI_CONFIG_DIR=".symfony5"
22
22
CLI_EXECUTABLE=" symfony"
23
23
CLI_TMP_NAME=" $CLI_EXECUTABLE -" $( date +" %s" )
24
24
CLI_NAME=" Symfony CLI"
25
- CLI_DOWNLOAD_URL_PATTERN=" https://github.com/symfony-cli/symfony-cli/releases/latest/download/symfony-cli_~platform~.tar.gz"
25
+ CLI_VERSION=" ${CLI_VERSION:- latest} "
26
+ CLI_DOWNLOAD_URL_LATEST_PATTERN=" https://github.com/symfony-cli/symfony-cli/releases/latest/download/symfony-cli_~platform~.tar.gz"
27
+ CLI_DOWNLOAD_URL_VERSION_PATTERN=" https://github.com/symfony-cli/symfony-cli/releases/download/v~version~/symfony-cli_~platform~.tar.gz"
28
+
26
29
CLI_TMPDIR=" ${TMPDIR:-/ tmp} "
27
30
28
31
function output {
@@ -53,7 +56,6 @@ function output {
53
56
}
54
57
55
58
output " ${CLI_NAME} installer" " heading"
56
-
57
59
binary_dest=" ${HOME} /${CLI_CONFIG_DIR} /bin"
58
60
custom_dir=" false"
59
61
@@ -79,6 +81,16 @@ case $1 in
79
81
esac
80
82
done
81
83
84
+ output " \nSanity check" " heading"
85
+
86
+ # Check that the version is valid
87
+ if [[ " $CLI_VERSION " =~ ^[0-9]+ (\. [0-9]+)* $ || " $CLI_VERSION " == ' latest' ]]; then
88
+ output " [*] Version has valid format" " success"
89
+ else
90
+ output " [ ] ERROR: Version has invalid format." " error"
91
+ exit 1
92
+ fi
93
+
82
94
# Run environment checks.
83
95
output " \nEnvironment check" " heading"
84
96
@@ -163,14 +175,19 @@ platform="${kernel}_${machine}"
163
175
# The necessary checks have passed. Start downloading the right version.
164
176
output " \nDownload" " heading"
165
177
166
- latest_url=${CLI_DOWNLOAD_URL_PATTERN/ ~platform~/ ${platform} }
167
- output " Downloading ${latest_url} ..." ;
178
+ download_url=" ${CLI_DOWNLOAD_URL_LATEST_PATTERN} "
179
+ if [[ " $CLI_VERSION " != ' latest' ]]; then
180
+ download_url=${CLI_DOWNLOAD_URL_VERSION_PATTERN/ ~version~/ ${CLI_VERSION} }
181
+ fi
182
+
183
+ download_url=${download_url/ ~platform~/ ${platform} }
184
+ output " Downloading ${download_url} ..." ;
168
185
case $downloader in
169
186
" curl" )
170
- curl --fail --location " ${latest_url } " > " ${CLI_TMPDIR} /${CLI_TMP_NAME} .tar.gz"
187
+ curl --fail --location " ${download_url } " > " ${CLI_TMPDIR} /${CLI_TMP_NAME} .tar.gz"
171
188
;;
172
189
" wget" )
173
- wget -q --show-progress " ${latest_url } " -O " ${CLI_TMPDIR} /${CLI_TMP_NAME} .tar.gz"
190
+ wget -q --show-progress " ${download_url } " -O " ${CLI_TMPDIR} /${CLI_TMP_NAME} .tar.gz"
174
191
;;
175
192
esac
176
193
0 commit comments