From 0fe7c953d782336e464aa782bb279f048118691b Mon Sep 17 00:00:00 2001
From: jurgenhaas <juergen@paragon-es.de>
Date: Tue, 24 Sep 2019 14:10:30 +0200
Subject: [PATCH] #33 Improve reset feature

---
 run/scripts/reset      |  3 ++
 run/scripts/selfupdate |  1 +
 run/scripts/update     | 75 +++++++++++++++++++++++-------------------
 3 files changed, 46 insertions(+), 33 deletions(-)

diff --git a/run/scripts/reset b/run/scripts/reset
index 05bb769..3413f35 100755
--- a/run/scripts/reset
+++ b/run/scripts/reset
@@ -1,6 +1,9 @@
 #!/bin/bash
 
 echo "Reset L3D container"
+if [[ -z ${L3D_FORCE_UPDATE} ]]; then
+  export L3D_FORCE_UPDATE=1
+fi
 
 export PHP_VERSION=7.0
 /usr/local/bin/update
diff --git a/run/scripts/selfupdate b/run/scripts/selfupdate
index d95deb4..7a07477 100755
--- a/run/scripts/selfupdate
+++ b/run/scripts/selfupdate
@@ -21,4 +21,5 @@ fi
 echo "Self update to version ${NEWVERSION} succeeded!"
 
 export VERSION=${NEWVERSION}
+export L3D_FORCE_UPDATE=0
 /usr/local/bin/reset
diff --git a/run/scripts/update b/run/scripts/update
index 8137890..43a8c25 100755
--- a/run/scripts/update
+++ b/run/scripts/update
@@ -1,48 +1,57 @@
 #!/bin/bash
 
-if [[ -n ${PHP_VERSION} ]]; then
-  IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION} | head -1)
-  if [[ ! -n ${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"
-    NEWIMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${VERSION} | head -1)
-    while true; do
-      IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION} | grep -v ${NEWIMAGEID})
-      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
-        echo "Removing outdated image ..."
-        docker rmi ${IMAGEID} >/dev/null
-      else
-        break
-      fi
-    done
-    IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/node:8-jessie-slim)
+function cleanup {
+  NEWIMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${VERSION} | head -1)
+  while true; do
+    IMAGEID=$(docker image ls -q registry.lakedrops.com/docker/l3d/php-${PHP_VERSION} | grep -v ${NEWIMAGEID})
     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
+      echo "Removing outdated image ..."
+      docker rmi ${IMAGEID} >/dev/null
+    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
-- 
GitLab