version turbo y version .go
This commit is contained in:
1 parent
778b286369
commit
4e0067a368
9 files changed
+395
No files matched your search
+107
@@ -0,0 +1,107 @@
|
||||
#!/bin/bash
|
||||
# pip_info v2.0 — Luis GuLo Edition
|
||||
|
||||
mostrar_ayuda() {
|
||||
echo "═══════════════════════════════════════════════════════════════════════"
|
||||
echo "Uso: $0 <paquete> [--all] [--json]"
|
||||
echo ""
|
||||
echo "Opciones:"
|
||||
echo " --all Mostrar TODAS las versiones (incluye pre-release)"
|
||||
echo " --json Salida en JSON puro"
|
||||
echo ""
|
||||
echo "Por defecto muestra las 10 últimas versiones estables."
|
||||
echo "═══════════════════════════════════════════════════════════════════════"
|
||||
}
|
||||
|
||||
# ----------------------
|
||||
# Validación de argumentos
|
||||
# ----------------------
|
||||
if [[ "$1" == "--help" || "$1" == "-h" ]]; then
|
||||
mostrar_ayuda
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "❌ Error: Debe indicar el nombre del paquete."
|
||||
mostrar_ayuda
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PAQUETE="$1"
|
||||
FLAG_ALL="$2"
|
||||
FLAG_JSON="$3"
|
||||
|
||||
URL="https://pypi.org/pypi/$PAQUETE/json"
|
||||
RESPUESTA=$(curl -s "$URL")
|
||||
|
||||
# ----------------------
|
||||
# Validación del JSON
|
||||
# ----------------------
|
||||
if ! echo "$RESPUESTA" | jq empty 2>/dev/null; then
|
||||
echo "❌ PyPI devolvió una respuesta no válida (¿paquete inexistente?)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! echo "$RESPUESTA" | jq -e '.info.name' >/dev/null; then
|
||||
echo "❌ No se encontró información para '$PAQUETE'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Salida JSON pura
|
||||
if [[ "$FLAG_ALL" == "--json" || "$FLAG_JSON" == "--json" ]]; then
|
||||
echo "$RESPUESTA"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# ----------------------
|
||||
# Obtener campos principales
|
||||
# ----------------------
|
||||
NOMBRE=$(echo "$RESPUESTA" | jq -r '.info.name')
|
||||
VERSION=$(echo "$RESPUESTA" | jq -r '.info.version')
|
||||
DESCRIPCION=$(echo "$RESPUESTA" | jq -r '.info.summary')
|
||||
|
||||
echo "📦 Paquete: $NOMBRE"
|
||||
echo "🔢 Última versión: $VERSION"
|
||||
echo "📝 Descripción: $DESCRIPCION"
|
||||
echo
|
||||
|
||||
# ----------------------
|
||||
# Funciones para listar versiones
|
||||
# ----------------------
|
||||
|
||||
mostrar_estables() {
|
||||
echo "📚 Últimas 10 versiones ESTABLES:"
|
||||
echo
|
||||
|
||||
echo "$RESPUESTA" \
|
||||
| jq -r '.releases | keys[]' \
|
||||
| grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' \
|
||||
| sort -V -r \
|
||||
| head -n 10 \
|
||||
| while read v; do
|
||||
PY=$(echo "$RESPUESTA" | jq -r ".releases[\"$v\"][0].requires_python // \"N/A\"")
|
||||
printf " %-15s (Python %s)\n" "$v" "$PY"
|
||||
done
|
||||
}
|
||||
|
||||
mostrar_todas() {
|
||||
echo "📚 Todas las versiones:"
|
||||
echo
|
||||
|
||||
echo "$RESPUESTA" \
|
||||
| jq -r '.releases | keys[]' \
|
||||
| sort -V -r \
|
||||
| while read v; do
|
||||
PY=$(echo "$RESPUESTA" | jq -r ".releases[\"$v\"][0].requires_python // \"N/A\"")
|
||||
printf " %-15s (Python %s)\n" "$v" "$PY"
|
||||
done
|
||||
}
|
||||
|
||||
# ----------------------
|
||||
# Selección del modo
|
||||
# ----------------------
|
||||
if [[ "$FLAG_ALL" == "--all" ]]; then
|
||||
mostrar_todas
|
||||
else
|
||||
mostrar_estables
|
||||
fi
|
||||
Reference in new issue
Block a user