diff --git a/start.sh b/start.sh index bb862bfa255ca1880ce93fe797dc0f96824001d6..63a2a1aea4c77292363961287de37d513274b031 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