From c9e4553d11daa2d43a107bf9f3fd4707f6321c86 Mon Sep 17 00:00:00 2001
From: jurgenhaas <juergen@paragon-es.de>
Date: Sat, 19 Feb 2022 13:02:50 +0100
Subject: [PATCH] docker/l3d#111 Update post-checkout hook

---
 start.sh | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/start.sh b/start.sh
index bb862bf..63a2a1a 100755
--- a/start.sh
+++ b/start.sh
@@ -247,9 +247,16 @@ if [[ -d .git ]]; then
     echo "#!/bin/sh" > .git/hooks/post-checkout
     chmod +x .git/hooks/post-checkout
   fi
-  HOOK_DEFINED=$(grep /usr/local/bin/update-env .git/hooks/post-checkout)
-  if [[ "$HOOK_DEFINED" = "" ]]; then
-    echo "docker exec ${COMPOSE_PROJECT_NAME}_l3d /usr/local/bin/update-env" >> .git/hooks/post-checkout
+  OLDCOMMAND='docker exec '${COMPOSE_PROJECT_NAME}'_l3d /usr/local/bin/update-env'
+  NEWCOMMAND='RUNNING=$(docker container ls --all -q -f name='${COMPOSE_PROJECT_NAME}'_l3d);if [ "x$RUNNING" != "x" ];then docker exec '${COMPOSE_PROJECT_NAME}'_l3d /usr/local/bin/update-env;fi'
+  OLD_HOOK_DEFINED=$(grep "$OLDCOMMAND" .git/hooks/post-checkout)
+  NEW_HOOK_DEFINED=$(grep "$NEWCOMMAND" .git/hooks/post-checkout)
+  if [[ "x$OLD_HOOK_DEFINED" = "x" ]]; then
+    echo "$NEWCOMMAND" >> .git/hooks/post-checkout
+  elif [[ "x$NEW_HOOK_DEFINED" = "x" ]]; then
+    OLDCOMMAND="${OLDCOMMAND//\//\\/}"
+    sed -i -e "/${OLDCOMMAND}/d" .git/hooks/post-checkout
+    echo "$NEWCOMMAND" >> .git/hooks/post-checkout
   fi
 fi
 /usr/local/bin/update-env
-- 
GitLab