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:
+39
-5
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user