#!/bin/bash
###
# Runs composer update, commits changes to a new branch,
# and creates a pull request.
#
# Requires git, composer, and hub
###
date
if [ -z "$WP_CLI_DIR" ]; then
echo 'Please set $WP_CLI_DIR'
exit 1
fi
set -ex
cd $WP_CLI_DIR
# Reset WP-CLI directory to baseline
git checkout -f master
git pull origin master
composer install
# Run composer update and capture to untracked log file
composer update --no-progress --no-interaction |& tee vendor/update.log
UPDATE=$(cat vendor/update.log | col -b)
# We only care to proceed when there are changes
if [ -z "$(git status -s)" ]; then
echo 'No updates available'
exit 0;
fi
# Create a dated branch and commit the changes
DATE=$(date +%Y-%m-%d)
BRANCH="update-deps-$DATE"
git branch -f $BRANCH master
git checkout $BRANCH
git add .
MESSAGE="Update Composer dependencies ($DATE)
\`\`\`
$UPDATE
\`\`\`"
git commit -n -m "$MESSAGE"
# Push and pull request
git push origin $BRANCH
hub pull-request -m "$MESSAGE"
|