#!/bin/bash

function removecontainer {
  if [[ "$1" == "selective" ]]; then
    IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/$2 | grep -v ${NEWIMAGEID})
  else
    IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/$2)
  fi
  if [[ -n ${IMAGEID} ]]; then
    while true; do
      ID=$(docker container ls --all -q -f ancestor=${IMAGEID})
      if [[ -n ${ID} ]]; then
        echo "Removing outdated container ..."
        docker kill ${ID} >/dev/null
        docker rm ${ID} >/dev/null
      else
        break
      fi
    done
    if [[ "$1" == "selective" ]]; then
      echo "Removing outdated image ..."
      docker rmi ${IMAGEID} >/dev/null
    fi
  fi
}

function cleanup {
  if [[ $L3D_FORCE_UPDATE -eq 1 ]]; then
    removecontainer all php-${PHP_VERSION}
  else
    NEWIMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${VERSION} | head -1)
    removecontainer selective php-${PHP_VERSION}
  fi
  removecontainer all node:8-jessie-slim
}

if [[ -n ${PHP_VERSION} ]]; then
  if [[ $L3D_FORCE_UPDATE -eq 1 ]]; then
    echo "Force update"
    cleanup
  else
    IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION} | head -1)
    if [[ -z ${IMAGEID} ]]; then
      exit
    fi
    echo "Updating the image ..."
    STATUS=$(docker pull registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${VERSION})
    if [[ "$STATUS" == *"Status: Image is up to date"* ]]; then
      echo "Already up to date"
    else
      echo "Image updated"
      cleanup
    fi
  fi
fi