8000 Merge pull request #502 from kevin-studer/installer_with_version · nuonic-digital/symfony-cli@4b1a8d0 · GitHub
[go: up one dir, main page]

Skip to content

Commit 4b1a8d0

Browse files
authored
Merge pull request symfony-cli#502 from kevin-studer/installer_with_version
Installer with version
2 parents 367ab89 + 82a9432 commit 4b1a8d0

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

installer/bash-installer

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ CLI_CONFIG_DIR=".symfony5"
2222
CLI_EXECUTABLE="symfony"
2323
CLI_TMP_NAME="$CLI_EXECUTABLE-"$(date +"%s")
2424
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+
2629
CLI_TMPDIR="${TMPDIR:-/tmp}"
2730

2831
function output {
@@ -53,7 +56,6 @@ function output {
5356
}
5457

5558
output "${CLI_NAME} installer" "heading"
56-
5759
binary_dest="${HOME}/${CLI_CONFIG_DIR}/bin"
5860
custom_dir="false"
5961

@@ -79,6 +81,16 @@ case $1 in
7981
esac
8082
done
8183

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+
8294
# Run environment checks.
8395
output "\nEnvironment check" "heading"
8496

@@ -163,14 +175,19 @@ platform="${kernel}_${machine}"
163175
# The necessary checks have passed. Start downloading the right version.
164176
output "\nDownload" "heading"
165177

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}...";
168185
case $downloader in
169186
"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"
171188
;;
172189
"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"
174191
;;
175192
esac
176193

0 commit comments

Comments
 (0)
0