specleap-framework 2.1.14 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/setup.sh CHANGED
@@ -48,23 +48,8 @@ echo -e "${YELLOW} v2.0.0 — Instalador Profesional${NC}"
48
48
  echo -e "${CYAN}${LINE}${NC}"
49
49
  echo ""
50
50
 
51
- # ============================================
52
- # PASO 0: Nombre de la carpeta del proyecto
53
- # ============================================
54
- # Solo se pregunta cuando setup.sh se ejecuta DIRECTAMENTE (`bash setup.sh`
55
- # tras `git clone …`). Si vienes desde `bin/specleap` (vía `npx`) ese script
56
- # ya preguntó nombre y ya creó la carpeta — entonces SPECLEAP_INSTALL_PATH
57
- # está set y saltamos este bloque para no preguntar dos veces.
58
- #
59
- # Si el usuario escribe un nombre distinto al actual, el script RENOMBRA
60
- # la carpeta in-place: `mv` del directorio actual al nuevo y `cd` al nuevo.
61
- # El proceso bash sigue vivo durante el rename porque se aferra al inode,
62
- # no al path.
63
-
64
- CURRENT_PATH="$(pwd)"
65
- CURRENT_FOLDER_NAME="$(basename "$CURRENT_PATH")"
66
- PARENT_PATH="$(dirname "$CURRENT_PATH")"
67
-
51
+ # Helper usado por el Paso 2 (nombre de carpeta) más abajo.
52
+ # Definido aquí porque es lógica pura sin dependencia de idioma.
68
53
  is_valid_folder_name() {
69
54
  local name="$1"
70
55
  [ -z "$name" ] && return 1
@@ -74,61 +59,6 @@ is_valid_folder_name() {
74
59
  return 1
75
60
  }
76
61
 
77
- if [ -z "${SPECLEAP_INSTALL_PATH:-}" ]; then
78
- echo "📝 ¿Cómo quieres que se llame la carpeta del proyecto?"
79
- echo " What name do you want for the project folder?"
80
- echo ""
81
- echo " Carpeta actual / Current: $CURRENT_FOLDER_NAME"
82
- echo " Default si pulsas Enter / Default on Enter: specleap-framework"
83
- echo " Permitido / Allowed: letras, números, '-', '_', '.'"
84
- echo ""
85
-
86
- while true; do
87
- read -p "Nombre / Name: " RAW_NAME
88
- # Si Enter vacío → default 'specleap-framework'
89
- # Excepto si ya se llama así y el user pulsa Enter, mantenemos
90
- if [ -z "$RAW_NAME" ]; then
91
- NEW_NAME="specleap-framework"
92
- else
93
- NEW_NAME="$RAW_NAME"
94
- fi
95
-
96
- if is_valid_folder_name "$NEW_NAME"; then
97
- break
98
- fi
99
-
100
- echo ""
101
- echo "❌ Nombre inválido / Invalid name: \"$NEW_NAME\""
102
- echo " Usa solo letras, números, '-', '_' y '.' (no empezar con '.')"
103
- echo " Use only letters, numbers, '-', '_' and '.' (cannot start with '.')"
104
- echo ""
105
- done
106
-
107
- # Si el nombre coincide con el actual, no renombramos
108
- if [ "$NEW_NAME" = "$CURRENT_FOLDER_NAME" ]; then
109
- echo ""
110
- echo "✅ Carpeta: $CURRENT_FOLDER_NAME"
111
- SPECLEAP_INSTALL_PATH="$CURRENT_PATH"
112
- else
113
- NEW_PATH="$PARENT_PATH/$NEW_NAME"
114
- if [ -e "$NEW_PATH" ]; then
115
- echo ""
116
- echo "❌ Ya existe / Already exists: $NEW_PATH"
117
- echo " Se mantiene el nombre actual / Keeping current name: $CURRENT_FOLDER_NAME"
118
- SPECLEAP_INSTALL_PATH="$CURRENT_PATH"
119
- else
120
- mv "$CURRENT_PATH" "$NEW_PATH"
121
- cd "$NEW_PATH"
122
- CURRENT_PATH="$NEW_PATH"
123
- CURRENT_FOLDER_NAME="$NEW_NAME"
124
- SPECLEAP_INSTALL_PATH="$NEW_PATH"
125
- echo ""
126
- echo "✅ Carpeta renombrada / Folder renamed: $NEW_NAME"
127
- fi
128
- fi
129
- echo ""
130
- fi
131
-
132
62
  # ============================================
133
63
  # PASO 1: Selección de Idioma
134
64
  # ============================================
@@ -219,6 +149,114 @@ echo -e "${GREEN}✅ curl:${NC} available"
219
149
  echo ""
220
150
  sleep 1
221
151
 
152
+ # ============================================
153
+ # PASO 1.5: Nombre de la carpeta del proyecto
154
+ # ============================================
155
+ # Va DESPUÉS de la selección de idioma para que los textos salgan en el
156
+ # idioma elegido (no bilingües). Antes del Paso 2 (GitHub) para que el
157
+ # rename sea visible en el resto de prompts y en el resumen final.
158
+ #
159
+ # Solo aplica cuando setup.sh se ejecuta directamente (`bash setup.sh`).
160
+ # Si vienes desde `bin/specleap` (vía `npx`), ese script ya pidió nombre
161
+ # y ya creó la carpeta — entonces SPECLEAP_INSTALL_PATH está set y
162
+ # saltamos este bloque para no preguntar dos veces.
163
+
164
+ if [ -z "${SPECLEAP_INSTALL_PATH:-}" ]; then
165
+ CURRENT_PATH="$(pwd)"
166
+ CURRENT_FOLDER_NAME="$(basename "$CURRENT_PATH")"
167
+ PARENT_PATH="$(dirname "$CURRENT_PATH")"
168
+
169
+ echo -e "${CYAN}${LINE}${NC}"
170
+ if [ "$LANG" = "es" ]; then
171
+ echo -e "${BLUE}${BOLD}Nombre de la carpeta del proyecto${NC}"
172
+ else
173
+ echo -e "${BLUE}${BOLD}Project folder name${NC}"
174
+ fi
175
+ echo -e "${CYAN}${LINE}${NC}"
176
+ echo ""
177
+
178
+ if [ "$LANG" = "es" ]; then
179
+ echo "📝 ¿Cómo quieres que se llame la carpeta del proyecto?"
180
+ echo ""
181
+ echo " Carpeta actual: $CURRENT_FOLDER_NAME"
182
+ echo " Default si pulsas Enter: specleap-framework"
183
+ echo " Permitido: letras, números, '-', '_', '.'"
184
+ echo ""
185
+ else
186
+ echo "📝 What name do you want for the project folder?"
187
+ echo ""
188
+ echo " Current folder: $CURRENT_FOLDER_NAME"
189
+ echo " Default on Enter: specleap-framework"
190
+ echo " Allowed: letters, numbers, '-', '_', '.'"
191
+ echo ""
192
+ fi
193
+
194
+ while true; do
195
+ if [ "$LANG" = "es" ]; then
196
+ read -p "$(echo -e ${YELLOW}Nombre:${NC} )" RAW_NAME
197
+ else
198
+ read -p "$(echo -e ${YELLOW}Name:${NC} )" RAW_NAME
199
+ fi
200
+
201
+ if [ -z "$RAW_NAME" ]; then
202
+ NEW_NAME="specleap-framework"
203
+ else
204
+ NEW_NAME="$RAW_NAME"
205
+ fi
206
+
207
+ if is_valid_folder_name "$NEW_NAME"; then
208
+ break
209
+ fi
210
+
211
+ echo ""
212
+ if [ "$LANG" = "es" ]; then
213
+ echo -e "${RED}❌ Nombre inválido: \"$NEW_NAME\"${NC}"
214
+ echo " Usa solo letras, números, '-', '_' y '.' (no empezar con '.')"
215
+ else
216
+ echo -e "${RED}❌ Invalid name: \"$NEW_NAME\"${NC}"
217
+ echo " Use only letters, numbers, '-', '_' and '.' (cannot start with '.')"
218
+ fi
219
+ echo ""
220
+ done
221
+
222
+ if [ "$NEW_NAME" = "$CURRENT_FOLDER_NAME" ]; then
223
+ echo ""
224
+ if [ "$LANG" = "es" ]; then
225
+ echo -e "${GREEN}✅ Carpeta:${NC} $CURRENT_FOLDER_NAME"
226
+ else
227
+ echo -e "${GREEN}✅ Folder:${NC} $CURRENT_FOLDER_NAME"
228
+ fi
229
+ SPECLEAP_INSTALL_PATH="$CURRENT_PATH"
230
+ else
231
+ NEW_PATH="$PARENT_PATH/$NEW_NAME"
232
+ if [ -e "$NEW_PATH" ]; then
233
+ echo ""
234
+ if [ "$LANG" = "es" ]; then
235
+ echo -e "${RED}❌ Ya existe:${NC} $NEW_PATH"
236
+ echo -e "${YELLOW} Se mantiene el nombre actual:${NC} $CURRENT_FOLDER_NAME"
237
+ else
238
+ echo -e "${RED}❌ Already exists:${NC} $NEW_PATH"
239
+ echo -e "${YELLOW} Keeping current name:${NC} $CURRENT_FOLDER_NAME"
240
+ fi
241
+ SPECLEAP_INSTALL_PATH="$CURRENT_PATH"
242
+ else
243
+ mv "$CURRENT_PATH" "$NEW_PATH"
244
+ cd "$NEW_PATH"
245
+ CURRENT_PATH="$NEW_PATH"
246
+ CURRENT_FOLDER_NAME="$NEW_NAME"
247
+ SPECLEAP_INSTALL_PATH="$NEW_PATH"
248
+ echo ""
249
+ if [ "$LANG" = "es" ]; then
250
+ echo -e "${GREEN}✅ Carpeta renombrada:${NC} $NEW_NAME"
251
+ else
252
+ echo -e "${GREEN}✅ Folder renamed:${NC} $NEW_NAME"
253
+ fi
254
+ fi
255
+ fi
256
+ echo ""
257
+ sleep 1
258
+ fi
259
+
222
260
  # ============================================
223
261
  # PASO 2: GitHub
224
262
  # ============================================
@@ -604,6 +642,10 @@ GITHUB_USER=$GITHUB_USER
604
642
  # Asana (REQUIRED)
605
643
  ASANA_ACCESS_TOKEN=$ASANA_TOKEN
606
644
  ASANA_WORKSPACE_ID=$ASANA_WORKSPACE_ID
645
+ # ASANA_WORKSPACE_GID es alias de ASANA_WORKSPACE_ID — los scripts del backlog
646
+ # (generate-asana-structure.sh, asana-utils.sh) leen GID; lo exponemos para
647
+ # evitar tener que detectarlo cada vez via API.
648
+ ASANA_WORKSPACE_GID=$ASANA_WORKSPACE_ID
607
649
 
608
650
  # CodeRabbit (installed via GitHub App)
609
651
  # https://github.com/apps/coderabbitai