#!/bin/bash

function cleanup {
  NEWIMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${VERSION} | head -1)
  while true; do
    if [[ $L3D_FORCE_UPDATE -eq 1 ]]; then
      IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION})
    else
      IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION} | grep -v ${NEWIMAGEID})
    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 [[ $L3D_FORCE_UPDATE -eq 0 ]]; then
        echo "Removing outdated image ..."
        docker rmi ${IMAGEID} >/dev/null
      fi
    else
      break
    fi
  done
  IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/node:8-jessie-slim)
  if [[ -n ${IMAGEID} ]]; then
    while true; do
      ID=$(docker container ls --all -q -f ancestor=${IMAGEID})
      if [[ -n ${ID} ]]; then
        echo "Removing outdated node container ..."
        docker kill ${ID} >/dev/null
        docker rm ${ID} >/dev/null
      else
        break
      fi
    done
  fi
}

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