diff --git a/bin/update-env b/bin/update-env
index fd01e7ef0e4fd247671f42b2dc8ab6519113c208..cfc36fcf747e66b791af8b7da08961b1506f05df 100755
--- a/bin/update-env
+++ b/bin/update-env
@@ -20,9 +20,11 @@ else
 fi
 PROJECT_BRANCH_SANITIZED=$(echo "$PROJECT_BRANCH" | tr [:upper:] [:lower:] | sed -r 's/[\/_]+/-/g')
 
-echo "PROJECT_NAME=${PROJECT_NAME}" >>.env
-echo "PROJECT_BRANCH=${PROJECT_BRANCH}" >>.env
-echo "PROJECT_BRANCH_SANITIZED=${PROJECT_BRANCH_SANITIZED}" >>.env
-if [[ -f ".env" ]]; then
-  env -i $(cat .env | xargs) >.env
+if [[ -f ".env" && -w ".env" ]] || [[ ! -f ".env" && -w . ]]; then
+  echo "PROJECT_NAME=${PROJECT_NAME}" >>.env
+  echo "PROJECT_BRANCH=${PROJECT_BRANCH}" >>.env
+  echo "PROJECT_BRANCH_SANITIZED=${PROJECT_BRANCH_SANITIZED}" >>.env
+  if [[ -f ".env" ]]; then
+    env -i $(cat .env | xargs) >.env
+  fi
 fi