1822: Tiny improvements in download-latest.sh r=irevoire a=curquiza

- Add check on `$latest` to check if it's empty. We have some issue on the swift SDK currently where the version number seems not to be retrieved, but we don't why https://github.com/meilisearch/meilisearch-swift/pull/216
- Replace some `"` by `'`
- Rename `$BINARY_NAME` by `$binary_name` to make them consistent with the other variables that are filled all along the script

Co-authored-by: Clémentine Urquizar <clementine@meilisearch.com>
This commit is contained in:
bors[bot] 2021-10-19 09:32:27 +00:00 committed by GitHub
commit 24eef577c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -51,13 +51,13 @@ semverLT() {
if [ $MAJOR_A -le $MAJOR_B ] && [ $MINOR_A -le $MINOR_B ] && [ $PATCH_A -lt $PATCH_B ]; then if [ $MAJOR_A -le $MAJOR_B ] && [ $MINOR_A -le $MINOR_B ] && [ $PATCH_A -lt $PATCH_B ]; then
return 0 return 0
fi fi
if [ "_$SPECIAL_A" == "_" ] && [ "_$SPECIAL_B" == "_" ] ; then if [ "_$SPECIAL_A" == '_' ] && [ "_$SPECIAL_B" == '_' ] ; then
return 1 return 1
fi fi
if [ "_$SPECIAL_A" == "_" ] && [ "_$SPECIAL_B" != "_" ] ; then if [ "_$SPECIAL_A" == '_' ] && [ "_$SPECIAL_B" != '_' ] ; then
return 1 return 1
fi fi
if [ "_$SPECIAL_A" != "_" ] && [ "_$SPECIAL_B" == "_" ] ; then if [ "_$SPECIAL_A" != '_' ] && [ "_$SPECIAL_B" == '_' ] ; then
return 0 return 0
fi fi
if [ "_$SPECIAL_A" < "_$SPECIAL_B" ]; then if [ "_$SPECIAL_A" < "_$SPECIAL_B" ]; then
@ -72,7 +72,7 @@ semverLT() {
# Returns the tag of the latest stable release (in terms of semver and not of release date) # Returns the tag of the latest stable release (in terms of semver and not of release date)
get_latest() { get_latest() {
temp_file='temp_file' # temp_file needed because the grep would start before the download is over temp_file='temp_file' # temp_file needed because the grep would start before the download is over
if [ -z "$GITHUB_PAT" ]; then if [ -z "$GITHUB_PAT" ]; then
curl -s 'https://api.github.com/repos/meilisearch/MeiliSearch/releases' > "$temp_file" || return 1 curl -s 'https://api.github.com/repos/meilisearch/MeiliSearch/releases' > "$temp_file" || return 1
else else
@ -86,28 +86,28 @@ get_latest() {
# Ex: v0.10.1 false false v0.9.1-rc.1 false true v0.9.0 false false... # Ex: v0.10.1 false false v0.9.1-rc.1 false true v0.9.0 false false...
i=0 i=0
latest="" latest=''
current_tag="" current_tag=''
for release_info in $releases; do for release_info in $releases; do
if [ $i -eq 0 ]; then # Cheking tag_name if [ $i -eq 0 ]; then # Cheking tag_name
if echo "$release_info" | grep -q "$GREP_SEMVER_REGEXP"; then # If it's not an alpha or beta release if echo "$release_info" | grep -q "$GREP_SEMVER_REGEXP"; then # If it's not an alpha or beta release
current_tag=$release_info current_tag=$release_info
else else
current_tag="" current_tag=''
fi fi
i=1 i=1
elif [ $i -eq 1 ]; then # Checking draft boolean elif [ $i -eq 1 ]; then # Checking draft boolean
if [ "$release_info" = "true" ]; then if [ "$release_info" = 'true' ]; then
current_tag="" current_tag=''
fi fi
i=2 i=2
elif [ $i -eq 2 ]; then # Checking prerelease boolean elif [ $i -eq 2 ]; then # Checking prerelease boolean
if [ "$release_info" = "true" ]; then if [ "$release_info" = 'true' ]; then
current_tag="" current_tag=''
fi fi
i=0 i=0
if [ "$current_tag" != "" ]; then # If the current_tag is valid if [ "$current_tag" != '' ]; then # If the current_tag is valid
if [ "$latest" = "" ]; then # If there is no latest yet if [ "$latest" = '' ]; then # If there is no latest yet
latest="$current_tag" latest="$current_tag"
else else
semverLT $current_tag $latest # Comparing latest and the current tag semverLT $current_tag $latest # Comparing latest and the current tag
@ -161,7 +161,7 @@ get_archi() {
} }
success_usage() { success_usage() {
printf "$GREEN%s\n$DEFAULT" "MeiliSearch binary successfully downloaded as '$BINARY_NAME' file." printf "$GREEN%s\n$DEFAULT" "MeiliSearch $latest binary successfully downloaded as '$binary_name' file."
echo '' echo ''
echo 'Run it:' echo 'Run it:'
echo ' $ ./meilisearch' echo ' $ ./meilisearch'
@ -179,6 +179,13 @@ failure_usage() {
# MAIN # MAIN
latest="$(get_latest)" latest="$(get_latest)"
if [ "$latest" = '' ]; then
echo ''
echo 'Impossible to get the latest stable version of MeiliSearch.'
echo 'Please let us know about this issue: https://github.com/meilisearch/meilisearch-swift/issues/new/choose'
exit 1
fi
if ! get_os; then if ! get_os; then
failure_usage failure_usage
exit 1 exit 1
@ -193,16 +200,16 @@ echo "Downloading MeiliSearch binary $latest for $os, architecture $archi..."
case "$os" in case "$os" in
'windows') 'windows')
release_file="meilisearch-$os-$archi.exe" release_file="meilisearch-$os-$archi.exe"
BINARY_NAME='meilisearch.exe' binary_name='meilisearch.exe'
;; ;;
*) *)
release_file="meilisearch-$os-$archi" release_file="meilisearch-$os-$archi"
BINARY_NAME='meilisearch' binary_name='meilisearch'
esac esac
link="https://github.com/meilisearch/MeiliSearch/releases/download/$latest/$release_file" link="https://github.com/meilisearch/MeiliSearch/releases/download/$latest/$release_file"
curl -OL "$link" curl -OL "$link"
mv "$release_file" "$BINARY_NAME" mv "$release_file" "$binary_name"
chmod 744 "$BINARY_NAME" chmod 744 "$binary_name"
success_usage success_usage