diff --git a/bin/drush b/bin/drush
index 20f0741e6c4507d3ddb6112bc43679b478d54717..402f98afc8b46eb003742f52c1f7e8630b0cc258 100755
--- a/bin/drush
+++ b/bin/drush
@@ -4,23 +4,35 @@ function setPermissions {
   sudo chmod -R g+w .
 }
 
+MODE=default
 FLAG=
 if [[ "$1" == "-T" ]]; then
   FLAG=-T
   shift
 fi
-if [[ "$1" == "si" ]] || [[ "$1" == "sin" ]] || [[ "$1" == "site-install" ]]; then
-  FLAG="$FLAG -e L3D_DISABLE_REDIS=yes"
-fi
+for arg in "$@"; do
+  case "$arg" in
+    si|sin|site-install|site:install)
+      FLAG="$FLAG -e L3D_DISABLE_REDIS=yes"
+      MODE=site-install
+      break
+      ;;
+    gen|generate)
+      MODE=generator
+      break
+      ;;
+  esac
+done
+
 docker compose exec $FLAG ${LAKEDROPS_DEV_DC_OPTIONS} php drush "$@"
 EC=$?
 
-if [[ "$1" == "si" ]] || [[ "$1" == "sin" ]] || [[ "$1" == "site-install" ]]; then
+if [[ "$MODE" == "site-install" ]]; then
   if [[ -f web/modules/contrib/redis/example.services.yml ]]; then
     docker compose exec $FLAG ${LAKEDROPS_DEV_DC_OPTIONS} php drush -y en redis
   fi
 fi
-if [[ "$1" == "gen" ]] || [[ "$1" == "generate" ]]; then
+if [[ "$MODE" == "generator" ]]; then
   setPermissions
 fi