Current section

Files

Jump to
mix_deploy priv templates rollback.eex
Raw

priv/templates/rollback.eex

#!/usr/bin/env bash
# Rollback release to previous
# Local deploy
set -e
# Environment vars
# DESTDIR, prefix for target files, optional
# Config vars
DEPLOY_DIR="${DEPLOY_DIR:-"<%= deploy_dir %>"}"
RELEASES_DIR="${DESTDIR}${RELEASES_DIR:-<%= releases_dir %>}"
CURRENT_LINK="${DESTDIR}${CURRENT_DIR:-<%= current_dir %>}"
# TODO: error handling
PREV_DIR=$(find -H "${RELEASES_DIR}" -maxdepth 1 | sort | tail -2 | head -1)
PREV_NAME=$(basename "${PREV_DIR}")
RELEASE="${RELEASE:-$PREV_NAME}"
echo "==> Rolling back to release $RELEASE"
if [[ -L "$CURRENT_LINK" ]]; then
rm "$CURRENT_LINK"
fi
ln -s "${RELEASES_DIR}/${PREV_NAME}" "$CURRENT_LINK"