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 <noreply@anthropic.com>
This commit is contained in:
Fabio
2026-10-13 09:48:41 +02:00
co-authored by Claude Opus 5.5
parent 042c550443
commit 0705b6c0e7
4 changed files with 58 additions and 13 deletions
+39 -5
View File
@@ -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.