From 48066a6742c3db12f102098d2ffe352a76dd27ab Mon Sep 17 00:00:00 2001
From: jurgenhaas <juergen@paragon-es.de>
Date: Wed, 25 Sep 2019 08:47:26 +0200
Subject: [PATCH] #33 Improve reset feature

---
 run/scripts/update | 50 +++++++++++++++++++---------------------------
 1 file changed, 21 insertions(+), 29 deletions(-)

diff --git a/run/scripts/update b/run/scripts/update
index 9c94789..1befa80 100755
--- a/run/scripts/update
+++ b/run/scripts/update
@@ -1,45 +1,37 @@
 #!/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)
+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 node container ..."
+        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
-- 
GitLab