From a47b1acd211693bab7f8892a99838319e1043d9e Mon Sep 17 00:00:00 2001 From: Maruan Al-Shedivat Date: Fri, 8 Sep 2017 12:51:25 -0400 Subject: [PATCH] Improve deploy script (addresses #6) --- bin/deploy | 77 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 62 insertions(+), 15 deletions(-) diff --git a/bin/deploy b/bin/deploy index f19c1f9542ee8..b4f0d7fcfe155 100755 --- a/bin/deploy +++ b/bin/deploy @@ -1,35 +1,82 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash -# Run this script to deploy the app to Github Pages. +# Run this script to deploy the app to Github Pages -# Exit if any subcommand fails. +# Parse cmd arguments + +SRC_BRANCH="master" +DEPLOY_BRANCH="gh-pages" + +USAGE_MSG="usage: deploy [-h|--help] [-u|--user] [-s|--src SRC_BRANCH] [-d|--deploy DEPLOY_BRANCH]" + +while [[ $# > 0 ]]; do + key="$1" + + case $key in + -h|--help) + echo $USAGE_MSG + exit 0 + ;; + -u|--user) + SRC_BRANCH="source" + DEPLOY_BRANCH="master" + shift + ;; + -s|--src) + SRC_BRANCH="$2" + shift + ;; + -d|--deploy) + DEPLOY_BRANCH="$2" + shift + ;; + *) + echo "Option $1 is unknown." + echo $USAGE_MSG + exit 0 + ;; + esac + shift +done + +# Exit if any subcommand fails set -e -echo "Started deploying" +echo "Deploying..." +echo "Source branch: $SRC_BRANCH" +echo "Deploy branch: $DEPLOY_BRANCH" + +# Switch to source branch (creates it if necessary from the current branch) +if [ `git branch | grep $SRC_BRANCH | tr ' ' '\n' | tail -1` ] +then + git checkout $SRC_BRANCH +else + git checkout -b $SRC_BRANCH +fi -# Checkout gh-pages branch. -if [ `git branch | grep gh-pages` ] +# Checkout DEPLOY_BRANCH branch +if [ `git branch | grep $DEPLOY_BRANCH` ] then - git branch -D gh-pages + git branch -D $DEPLOY_BRANCH fi -git checkout -b gh-pages +git checkout -b $DEPLOY_BRANCH -# Build site. +# Build site bundle exec jekyll build -# Delete and move files. +# Delete and move files find . -maxdepth 1 ! -name '_site' ! -name '.git' ! -name '.gitignore' -exec rm -rf {} \; mv _site/* . rm -R _site/ -# Push to gh-pages. +# Push to DEPLOY_BRANCH git add -fA git commit --allow-empty -m "$(git log -1 --pretty=%B) [ci skip]" -git push -f -q origin gh-pages +git push -f -q origin $DEPLOY_BRANCH -# Move back to previous branch. -git checkout - +# Move back to SRC_BRANCH +git checkout $SRC_BRANCH -echo "Deployed Successfully!" +echo "Deployed successfully!" exit 0