# Bel modo di gestire un ambiente di sviluppo

**URL:** <https://meta.discourse.org/t/nice-way-to-run-a-dev-env/375233>\
**Category:** Extras\
**Tags:** dev-install, development\
**Created:** [22 Luglio 2025, 1:01pm UTC](https://meta.discourse.org/t/nice-way-to-run-a-dev-env/375233 "2025-07-22T13:01:36Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![elmuerte](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/elmuerte/32/456517_2.png) [@elmuerte](https://meta.discourse.org/u/elmuerte)\
**Post date:** [22 Luglio 2025, 6:31pm UTC](https://meta.discourse.org/t/nice-way-to-run-a-dev-env/375233/2 "2025-07-22T18:31:50Z")

</div>

Nice. Un paio di suggerimenti.

Lo shebang dovrebbe essere `#!/usr/bin/env sh`, che è il più portabile. Lo script non utilizza alcun bashismo, quindi dovrebbe funzionare in qualsiasi shell compatibile con Bourne shell, non solo bash.

Dopo lo shebang aggiungi `set -e`. Questo farà sì che lo script esca se uno qualsiasi dei comandi fallisce. Altrimenti continuerà felicemente ad eseguire i comandi fallendo in seguito perché qualcosa come `bundle install` è fallito e l’output di errore è ora scomparso dallo schermo dell’utente.

Ora il plugin git pull è un po’ più problematico poiché gli errori scritti su STDERR e un’esecuzione git fallita non verranno gestiti correttamente. Quindi ho inviato anche STDERR a STDOUT e ho tenuto traccia del codice di uscita.

Non c’è bisogno di un sacco di comandi `cd`, né di impostare la variabile `PLUGIN_DIR`.

```sh
#!/usr/bin/env sh
set -e

cd ~/discourse
git pull

for folder in plugins/*; do
  if [-d "$folder/.git"]; then
    exitcode=0
    output=$(git -C "$folder" pull 2>&1) || exitcode=$?
    if echo "$output" | grep -q -v "Already up to date."; then
      echo "[$(basename "$folder")]"
      echo "$output"
      ["$exitcode" -ne 0] && exit "$exitcode"
    fi
  fi
done

bundle install
pnpm install
bin/rails db:migrate
DISCOURSE_HOSTNAME=localhost UNICORN_LISTENER=localhost:3000 bin/ember-cli -u

```

Avevo già uno script simile, tranne per il git pulling poiché non voglio che accada ogni volta.

---

_[View the full topic](https://meta.discourse.org/t/nice-way-to-run-a-dev-env/375233)._
