Skip to content
Open
25 changes: 23 additions & 2 deletions bin/install-wp-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,15 @@ download() {
fi
}

if [[ $WP_VERSION =~ [0-9]+\.[0-9]+ ]]; then
if [[ $WP_VERSION =~ ^[0-9]+\.[0-9]+$ ]]; then
WP_TESTS_TAG="branches/$WP_VERSION"
elif [[ $WP_VERSION =~ [0-9]+\.[0-9]+\.[0-9]+ ]]; then
WP_TESTS_TAG="tags/$WP_VERSION"
if [[ $WP_VERSION =~ [0-9]+\.[0-9]+\.[0] ]]; then

@atla5 atla5 Oct 26, 2018

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this code is duplicated below in install_wp(). it looks like all this section should be doing is deciding whether the WP_TESTS_TAG should use branches/ or tags/.

I would change this code section to the following and put it right at the top. it'll eliminate the need to over-complicate the rest of the logic in the other two functions

  # shorten `1.2.0` to `1.2` 
  if [[ $WP_VERSION =~ [0-9]+\.[0-9]+\.[0] ]]; then
    $WP_VERSION  = $WP_VERSION%??;
  fi

@atla5 atla5 Oct 26, 2018

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since the WP_TESTS_TAG variable is only used in the install_test_suite() function, you could also move this section into there, as opposed to leaving it in the main body.

# version x.x.0 means the first release of the major version, so strip off the .0 and download version x.x
WP_TESTS_TAG="branches/${WP_VERSION%??}"
else
WP_TESTS_TAG="tags/$WP_VERSION"
fi
elif [[ $WP_VERSION == 'nightly' || $WP_VERSION == 'trunk' ]]; then
WP_TESTS_TAG="trunk"
else
Expand Down Expand Up @@ -59,6 +64,22 @@ install_wp() {
else
if [ $WP_VERSION == 'latest' ]; then
local ARCHIVE_NAME='latest'
elif [[ $WP_VERSION =~ [0-9]+\.[0-9]+ ]]; then
# https serves multiple offers, whereas http serves single.
download https://api.wordpress.org/core/version-check/1.7/ /tmp/wp-latest.json

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix indentation here.

if [[ $WP_VERSION =~ [0-9]+\.[0-9]+\.[0] ]]; then
# version x.x.0 means the first release of the major version, so strip off the .0 and download version x.x
WP_VERSION=${WP_VERSION%??}
else
# otherwise, scan the releases and get the most up to date minor version of the major release
local VERSION_ESCAPED=`echo $WP_VERSION | sed 's/\./\\\\./g'`
LATEST_VERSION=$(grep -o '"version":"'$VERSION_ESCAPED'[^"]*' /tmp/wp-latest.json | sed 's/"version":"//' | head -1)
fi
if [[ -z "$LATEST_VERSION" ]]; then
local ARCHIVE_NAME="wordpress-$WP_VERSION"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indentation.

else
ARCHIVE_NAME="wordpress-$LATEST_VERSION"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indentation.

fi
else
local ARCHIVE_NAME="wordpress-$WP_VERSION"
fi
Expand Down