#!/bin/bash

MIGRATIONS_DIR="/migrations"
MIGRATIONS_HISTORY="/config/.migrations"

echo "[migrations] started"

if [ ! -d $MIGRATIONS_DIR ]; then
  echo "[migrations] no migrations found"
  exit
fi

for MIGRATION in $(ls -1 ${MIGRATIONS_DIR}/* | sort -n); do
  NAME="$(basename "${MIGRATION}")"
  if [ -f $MIGRATIONS_HISTORY ] && grep -Fxq "$NAME" $MIGRATIONS_HISTORY; then
    echo "[migrations] ${NAME}: skipped"
    continue
  fi
  echo "[migrations] ${NAME}: executing..."
  chmod +x $MIGRATION
  EXIT_CODE=$(/bin/bash ${MIGRATION}; echo $?)
  if [ $EXIT_CODE -ne 0 ]; then
    echo "[migrations] ${NAME}: failed with exit code $EXIT_CODE, contact support"
    exit $EXIT_CODE
  fi
  echo $NAME >> $MIGRATIONS_HISTORY
  echo "[migrations] ${NAME}: succeeded"
done

echo "[migrations] done"
