deploy-site-env.sh 1.90 KiB
#!/usr/bin/env bash
LIGHT_GREEN='\x1B[92m';
NC='\x1B[39m';
if [[ -z $1 ]]; then
echo;
echo "Usage: $0 <site.env>";
echo;
echo;
fi
if [[ -z `which gdate` ]]; then
echo "'coreutils' homebrew package not installed...";
if [[ -z `which brew` ]]; then
echo "Homebrew is NOT installed. Homebrew needs to be installed to proceed.";
echo "Visit https://https://brew.sh/ for more information.";
exit 1;
else
echo "Attempting to install 'coreutils'...";
brew install coreutils;
fi
fi
SITE_NAME=${1%.*};
ENV=${1##*.};
shift;
echo;
echo -e "${LIGHT_GREEN}==================================================================================${NC}";
printf "${LIGHT_GREEN}== %-30s ================================================${NC}\n" $SITE_NAME
echo -e "${LIGHT_GREEN}==================================================================================${NC}";
echo "SITE_NAME[$SITE_NAME] ENV[$ENV]";
echo;
echo "Checking backup... ";
BACKUP_DATE=`terminus backup:info --field=date --format=string $SITE_NAME.$ENV`;
BACKUP_DATE=${BACKUP_DATE%.*};
echo "BACKUP_DATE: `gdate -d @$BACKUP_DATE`";
NOW=`gdate +%s -u`;
BACKUP_AGE=`expr $NOW - $BACKUP_DATE`;
if [[ $BACKUP_AGE -gt 3600 ]]; then
echo "Backup is stale ($BACKUP_AGE seconds ago)...";
echo "terminus backup:create $SITE_NAME.$ENV --keep-for=30 --element=db";
terminus backup:create $SITE_NAME.$ENV --keep-for=30 --element=db;
else
echo "Backup is less than an hour old.. skipping new backup.";
fi
echo;
if [[ $ENV == 'dev' ]]; then
terminus site:upstream:clear-cache $SITE_NAME;
terminus upstream:updates:list $SITE_NAME.$ENV;
terminus upstream:updates:apply $SITE_NAME.$ENV --updatedb;
else
if [[ -z $1 ]]; then
while [[ -z $DEPLOY_MSG ]]; do
echo;
read -p "Enter deployment message: " DEPLOY_MSG;
echo;
done
else
DEPLOY_MSG=$@;
fi
terminus env:deploy $SITE_NAME.$ENV --updatedb --cc --note="$DEPLOY_MSG";
fi