From 0705b6c0e76fda90464cf6daadd83c4d10795a0b Mon Sep 17 00:00:00 2001 From: Fabio Date: Tue, 13 Oct 2026 09:48:41 +0200 Subject: [PATCH] progetti.sh e Claude chiedono dove scaricare, niente piu' ~/Work/workspace/oto La cartella dei progetti era fissata in comune.sh su ~/Work/workspace/oto, cioe' la cartella di chi ha scritto gli script, e il CLAUDE.md diceva di clonare li' anche questo repository. Adesso la sceglie la persona: progetti.sh la vuole con --in (o CARTELLA_PROGETTI), la chiede se puo' e altrimenti si ferma; il CLAUDE.md ha la regola di chiederla sempre prima di scaricare. Co-Authored-By: Claude Opus 5.5 --- CLAUDE.md | 24 ++++++++++++++++++------ README.md | 2 +- comune.sh | 1 - progetti.sh | 44 +++++++++++++++++++++++++++++++++++++++----- 4 files changed, 58 insertions(+), 13 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index ccf853b..7b69a2c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -27,7 +27,7 @@ La spiegazione per le persone sta in com'è**: `cd` nel percorso vero della cartella su quel PC (quello in cui l'hai scaricata, che conosci solo tu: la pagina per le persone non lo scrive apposta) e `./configura.sh`, in un blocco di codice, per esempio - `cd "/c/Users/mario/Work/workspace/oto/_OTO_IT_onboard" && ./configura.sh`. + `cd "/c/Users/mario/oto/_OTO_IT_onboard" && ./configura.sh`. Su Windows il percorso va nella forma di Git Bash (`/c/Users/...`), non `C:\...`. Tu lanci tutto il resto: installazioni, `verifica.sh`, `progetti.sh`, i comandi di sola lettura. @@ -39,7 +39,15 @@ La spiegazione per le persone sta in Lo dici e prosegui. 5. **Non copiare file da altri PC** e non proporlo: se a un progetto manca un segreto, va messo su AWS SSM da un amministratore. -6. **Ogni volta che le chiedi qualcosa, le dici dove lo trova o dove lo +6. **Dove scaricare lo chiedi sempre, prima di scaricare.** Questo + repository e i progetti vanno nella cartella che sceglie la persona, non + in una che decidi tu: non esiste un posto di default (fino al 13/10/2026 + le istruzioni dicevano `~/Work/workspace/oto`, che era la cartella di chi + le ha scritte). Chiedile in quale cartella vuole i progetti, proponendo + al massimo un esempio (sotto la sua cartella utente), e usa quella. Se + l'ha già scelta per questo repository, chiedile se i progetti vanno + accanto a lui, e non darlo per scontato. +7. **Ogni volta che le chiedi qualcosa, le dici dove lo trova o dove lo crea.** Non "inserisci la chiave AWS", ma "la crei nella console AWS: il tuo nome in alto a destra → Security credentials → …". Indirizzo, menu e pulsante, con i nomi come li vede sullo schermo (in inglese, se la pagina @@ -112,8 +120,9 @@ spiegala in una riga la prima volta. - Docker Desktop va **aperto una volta** a mano e le condizioni accettate: finché non lo si fa, `docker info` non risponde. 2. **Questo repository sul PC**, se ci stai parlando da un link e non da - dentro la cartella: `git clone https://git.oto-farm.com/admin/_OTO_IT_onboard.git - ~/Work/workspace/oto/_OTO_IT_onboard` (è pubblico, non ha segreti) e da lì + dentro la cartella. Prima le chiedi dove metterlo (regola 6), poi: + `git clone https://git.oto-farm.com/admin/_OTO_IT_onboard.git + "/_OTO_IT_onboard"` (è pubblico, non ha segreti) e da lì continui. 3. **Niente login su AWS né su Gitea nel browser** (deciso il 07/10/2026): le password sono già le definitive e l'MFA di AWS lo attiva chi @@ -157,8 +166,11 @@ spiegala in una riga la prima volta. elenco preciso di cosa manca e a chi chiederlo. Controlla anche che git entri su Gitea con il token giusto e che la chiave AWS sia la sua nell'account di OTO, non solo un utente con lo stesso nome. -8. **`./progetti.sh`**: scarica i progetti che la persona vede su Gitea (lo - lanci tu con i nomi: `./progetti.sh nome1 nome2`). Poi, in ogni progetto: +8. **`./progetti.sh`**: scarica i progetti che la persona vede su Gitea. + Prima le chiedi in quale cartella (regola 6), poi lo lanci tu con la + cartella e i nomi: `./progetti.sh --in "" nome1 nome2`. + Senza `--in` lo script non scarica niente: un posto di default non c'è + apposta. Poi, in ogni progetto: `./start.sh` per i progetti con pannello, `bin/local-init.sh` per Drupal e WordPress. Il resto lo spiega il `CLAUDE.md` di quel progetto. diff --git a/README.md b/README.md index 6bc69a2..f40632c 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ La spiegazione completa è su ```bash ./configura.sh # chiede quello che serve, una cosa per volta ./verifica.sh # dice verde o rosso per ogni accesso -./progetti.sh # scarica i progetti a cui hai accesso +./progetti.sh # chiede dove, e scarica i progetti a cui hai accesso ``` Si possono rilanciare quante volte si vuole: quello che è già a posto non diff --git a/comune.sh b/comune.sh index cccabe2..75f7302 100755 --- a/comune.sh +++ b/comune.sh @@ -17,7 +17,6 @@ CHIAVE_SSH="$HOME/.ssh/oto_ed25519" # PRODUCTION_SSH_KEY in project.conf.sh): sono la stessa chiave, perche' sui # server l'amministratore mette quella del profilo Gitea, cioe' questa. CHIAVI_SSH_PROGETTI="$HOME/.ssh/oto_staging_ed25519 $HOME/.ssh/oto_production_ed25519" -CARTELLA_PROGETTI="${CARTELLA_PROGETTI:-$HOME/Work/workspace/oto}" # I server, con i nomi che usano gli script dei progetti. Staging e la # produzione nuova stanno su rete privata: senza VPN non rispondono. Le diff --git a/progetti.sh b/progetti.sh index 5221249..a0f8741 100755 --- a/progetti.sh +++ b/progetti.sh @@ -2,11 +2,14 @@ # # SCARICA I PROGETTI A CUI HAI ACCESSO SU GITEA. # -# ./progetti.sh # elenca e chiede quali scaricare -# ./progetti.sh nome1 nome2 # scarica questi +# ./progetti.sh # chiede dove e quali scaricare +# ./progetti.sh --in CARTELLA nome1 nome2 # scarica questi in CARTELLA # -# Li mette in $CARTELLA_PROGETTI (di solito ~/Work/workspace/oto). Un progetto -# gia' scaricato non si tocca. Vedi solo i repository che l'amministratore ti +# La cartella la sceglie la persona, ogni volta: non c'e' un posto di default +# (fino al 13/10/2026 era ~/Work/workspace/oto, cioe' la cartella di chi ha +# scritto lo script). Si passa con --in o con CARTELLA_PROGETTI; senza, lo +# script la chiede, e se non puo' chiederla si ferma. Un progetto gia' +# scaricato non si tocca. Vedi solo i repository che l'amministratore ti # ha dato: se ne manca uno, e' da chiedere a lui. # Esce 1 se un progetto chiesto non e' stato scaricato. @@ -14,6 +17,34 @@ set -u cd "$(dirname "$0")" || exit 1 . ./comune.sh +if [ "${1:-}" = "--in" ] ; then + if [ -z "${2:-}" ] ; then + male "--in vuole una cartella: ./progetti.sh --in CARTELLA nome1 nome2" + exit 1 + fi + CARTELLA_PROGETTI="$2" + shift 2 +fi +CARTELLA_PROGETTI="${CARTELLA_PROGETTI:-}" +if [ -z "$CARTELLA_PROGETTI" ] ; then + if [ ! -t 0 ] ; then + male "manca la cartella in cui scaricare: ./progetti.sh --in CARTELLA nome1 nome2" + exit 1 + fi + read -r -p "In quale cartella scarico i progetti? " CARTELLA_PROGETTI + if [ -z "$CARTELLA_PROGETTI" ] ; then + male "nessuna cartella scelta: non scarico niente" + exit 1 + fi +fi +# La tilde fra virgolette la shell non la espande, e su Windows la persona +# puo' scrivere C:\Users\...: in Git Bash cygpath la porta nella forma /c/... +case "$CARTELLA_PROGETTI" in + "~") CARTELLA_PROGETTI="$HOME" ;; + "~/"*) CARTELLA_PROGETTI="$HOME/${CARTELLA_PROGETTI#\~/}" ;; +esac +c_e cygpath && CARTELLA_PROGETTI="$(cygpath -u "$CARTELLA_PROGETTI")" + if [ -z "$(token_gitea)" ] ; then male "token Gitea mancante: lancia prima ./configura.sh" exit 1 @@ -76,7 +107,10 @@ else fi ERRORI=0 -mkdir -p "$CARTELLA_PROGETTI" +if ! mkdir -p "$CARTELLA_PROGETTI" ; then + male "non riesco a creare $CARTELLA_PROGETTI" + exit 1 +fi titolo "Scarico in $CARTELLA_PROGETTI" for NOME in $SCELTI ; do # Confronto esatto, non una regex: il nome lo scrive la persona.