magicserve 1.2.5 → 1.2.7

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/run.sh +33 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "magicserve",
3
- "version": "1.2.5",
3
+ "version": "1.2.7",
4
4
  "description": "Script to run local environments via magicserve.json",
5
5
  "files": [
6
6
  "run.sh",
package/run.sh CHANGED
@@ -9,7 +9,10 @@ CONFIG_FILE="$SCRIPT_DIR/magicserve.json"
9
9
  # El directorio donde reside el script (resolviendo symlinks para instalación global via npm)
10
10
  _SCRIPT_SOURCE="${BASH_SOURCE[0]}"
11
11
  while [ -L "$_SCRIPT_SOURCE" ]; do
12
+ _SCRIPT_DIR="$(cd "$(dirname "$_SCRIPT_SOURCE")" && pwd)"
12
13
  _SCRIPT_SOURCE="$(readlink "$_SCRIPT_SOURCE")"
14
+ # Si readlink devuelve una ruta relativa, resolverla desde el dir del symlink
15
+ [[ "$_SCRIPT_SOURCE" != /* ]] && _SCRIPT_SOURCE="$_SCRIPT_DIR/$_SCRIPT_SOURCE"
13
16
  done
14
17
  REAL_SCRIPT_DIR="$(cd "$(dirname "$_SCRIPT_SOURCE")" && pwd)"
15
18
  VERSION=$(jq -r '.version' "$REAL_SCRIPT_DIR/package.json" 2>/dev/null || echo "1.1.0")
@@ -161,6 +164,7 @@ start_tunnel() {
161
164
 
162
165
  echo "🚇 Iniciando túnel para $DOMAIN en puerto $PORT..."
163
166
  local TUNNEL_PID_FILE="$PIDS_DIR/${DOMAIN}_tunnel.pid"
167
+ local TUNNEL_URL_FILE="$PIDS_DIR/${DOMAIN}_tunnel.url"
164
168
 
165
169
  # Si pasaron false o null, no hacer nada
166
170
  if [ "$TUNNEL_SUBDOMAIN" == "false" ] || [ "$TUNNEL_SUBDOMAIN" == "null" ] || [ -z "$TUNNEL_SUBDOMAIN" ]; then
@@ -171,13 +175,28 @@ start_tunnel() {
171
175
 
172
176
  if [ "$TUNNEL_SUBDOMAIN" == "true" ]; then
173
177
  nohup npx localtunnel --port $PORT > "$TUNNEL_LOG" 2>&1 &
178
+ local PID=$!
179
+ echo $PID > "$TUNNEL_PID_FILE"
180
+ echo "✅ Túnel corriendo (PID: $PID)"
181
+ # Esperar a que localtunnel imprima la URL dinámica
182
+ echo "⏳ Esperando URL del túnel..."
183
+ sleep 4
184
+ local URL=$(grep -o 'https://[^ ]*' "$TUNNEL_LOG" 2>/dev/null | head -1)
185
+ if [ -n "$URL" ]; then
186
+ echo "$URL" > "$TUNNEL_URL_FILE"
187
+ echo "🌐 URL pública del túnel: $URL"
188
+ else
189
+ echo "⚠️ No se pudo obtener la URL del túnel aún. Revisa: $TUNNEL_LOG"
190
+ fi
174
191
  else
175
192
  nohup npx localtunnel --port $PORT --subdomain "$TUNNEL_SUBDOMAIN" > "$TUNNEL_LOG" 2>&1 &
193
+ local PID=$!
194
+ echo $PID > "$TUNNEL_PID_FILE"
195
+ local URL="https://${TUNNEL_SUBDOMAIN}.loca.lt"
196
+ echo "$URL" > "$TUNNEL_URL_FILE"
197
+ echo "✅ Túnel corriendo (PID: $PID)"
198
+ echo "🌐 URL pública del túnel: $URL"
176
199
  fi
177
-
178
- local PID=$!
179
- echo $PID > "$TUNNEL_PID_FILE"
180
- echo "✅ Túnel corriendo (PID: $PID)"
181
200
  }
182
201
 
183
202
  start_all() {
@@ -232,6 +251,7 @@ stop_all() {
232
251
  fi
233
252
 
234
253
  local TUNNEL_PID_FILE="$PIDS_DIR/${DOMAIN}_tunnel.pid"
254
+ local TUNNEL_URL_FILE="$PIDS_DIR/${DOMAIN}_tunnel.url"
235
255
  if [ -f "$TUNNEL_PID_FILE" ]; then
236
256
  local TPID=$(cat "$TUNNEL_PID_FILE")
237
257
  if ps -p $TPID > /dev/null; then
@@ -241,6 +261,7 @@ stop_all() {
241
261
  echo "⚠️ Proceso de túnel para $DOMAIN no encontrado."
242
262
  fi
243
263
  rm "$TUNNEL_PID_FILE"
264
+ rm -f "$TUNNEL_URL_FILE"
244
265
  fi
245
266
 
246
267
  # Limpiar de /etc/hosts
@@ -280,10 +301,17 @@ status() {
280
301
  fi
281
302
 
282
303
  local TUNNEL_PID_FILE="$PIDS_DIR/${DOMAIN}_tunnel.pid"
304
+ local TUNNEL_URL_FILE="$PIDS_DIR/${DOMAIN}_tunnel.url"
283
305
  if [ -f "$TUNNEL_PID_FILE" ]; then
284
306
  local TPID=$(cat "$TUNNEL_PID_FILE")
285
307
  if ps -p $TPID > /dev/null; then
286
- echo " ↳ 🚇 Túnel expuesto (PID: $TPID)"
308
+ local TURL=""
309
+ [ -f "$TUNNEL_URL_FILE" ] && TURL=$(cat "$TUNNEL_URL_FILE")
310
+ if [ -n "$TURL" ]; then
311
+ echo " ↳ 🚇 Túnel activo (PID: $TPID) → 🌐 $TURL"
312
+ else
313
+ echo " ↳ 🚇 Túnel activo (PID: $TPID)"
314
+ fi
287
315
  else
288
316
  echo " ↳ 🔴 Túnel: Archivo PID existe pero no está corriendo"
289
317
  fi