blob: cd8e5dab04a5c662cd525238f1ed592b421594e6 [file] [log] [blame]
#!/usr/bin/env bash
set -o nounset
set -o errexit
set -o pipefail
REPOS_LOCATION="$HOME/.cocoapods/repos"
MASTER_REPO_LOCATION="$REPOS_LOCATION/master"
S3_BUCKET="cocoapods-specs"
tempfile=$(mktemp)
cleanup() {
echo "Download from S3 failed, cleaning up and falling back to standard checkout..."
rm -rf "$MASTER_REPO_LOCATION"
rm "$tempfile"
}
trap cleanup ERR
# Only install awscli if it's not in the image. pip will exit with
# non-zero exit code if the package is not installed. Hiding all output
# from package installation to not to confuse users.
if ! pip show awscli > /dev/null 2>&1 ; then
sudo pip install --ignore-installed awscli > /dev/null 2>&1
fi
rm -rf "$MASTER_REPO_LOCATION"
mkdir -p "$REPOS_LOCATION"
echo "Downloading CocoaPods master repo from $S3_BUCKET S3 bucket..."
# --no-sign-request forces awscli to not to use any credentials.
aws s3 --no-sign-request cp "s3://$S3_BUCKET/latest.tar.gz" "$tempfile" > /dev/null
echo "Uncompressing CocoaPods master repo..."
# We expect the structure with the "master" as the top dir in the archive.
tar -C "$REPOS_LOCATION" -xzf "$tempfile"
echo "Successfully downloaded CocoaPods master repo."
COCOAPODS_GIT_REV="$(cd $MASTER_REPO_LOCATION && git rev-parse HEAD)"
echo "Using specs repo revision $COCOAPODS_GIT_REV."
rm "$tempfile"