91 lines
3.0 KiB
Bash
91 lines
3.0 KiB
Bash
#!/bin/bash
|
|
: ' ---
|
|
Author: Luis GuLo
|
|
Release: 1.3
|
|
Changelog:
|
|
1.3: Mostrar version Python requerida
|
|
1.2: Ayuda + Mostrar por defecto 10 ultimas versiones disponibles, con opcion a todas
|
|
1.1: Compactar salida de todas las versiones disponibles
|
|
1.0: Localizar paquete y mostrar ultima version + disponibles
|
|
---'
|
|
|
|
mostrar_ayuda() {
|
|
echo "════════════════════════════════════════════════════════════════════════════════"
|
|
echo "Uso: $0 <nombre_paquete> [--all]"
|
|
echo ""
|
|
echo "Opciones:"
|
|
echo " --all Muestra todas las versiones disponibles (incluye alphas, betas, etc.)"
|
|
echo ""
|
|
echo "Por defecto, se muestran las últimas 10 versiones estables."
|
|
echo "Nota: Se indica entre paréntesis la version de Python requerida"
|
|
echo "════════════════════════════════════════════════════════════════════════════════"
|
|
}
|
|
|
|
# Verifica si se pidió ayuda
|
|
if [[ "$1" == "--help" || "$1" == "-h" ]]; then
|
|
mostrar_ayuda
|
|
exit 0
|
|
fi
|
|
|
|
# Verifica que se haya pasado un nombre de paquete
|
|
if [ -z "$1" ]; then
|
|
echo "❌ Error: Debe indicar el nombre del paquete."
|
|
mostrar_ayuda
|
|
exit 1
|
|
fi
|
|
|
|
PAQUETE="$1"
|
|
# Verificar orden: paquete + opcion
|
|
if [ "$PAQUETE" == "--all" ] ; then
|
|
echo "❌ Error: Orden en sintaxis obligatoria."
|
|
mostrar_ayuda
|
|
exit 0
|
|
fi
|
|
|
|
URL="https://pypi.org/pypi/$PAQUETE/json"
|
|
RESPUESTA=$(curl -s "$URL")
|
|
|
|
# Verifica si la respuesta contiene información válida
|
|
if echo "$RESPUESTA" | grep -q '"info"'; then
|
|
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 -e "\n📚 Versiones disponibles:"
|
|
|
|
mostrar_versiones() {
|
|
echo "$RESPUESTA" | jq -r '.releases | to_entries[] | "\(.key) \(.value[0].requires_python // "N/A")"' \
|
|
| grep -E '^[0-9]+\.[0-9]+\.[0-9]+ ' \
|
|
| sort -k1 -V -r \
|
|
| head -n 10 \
|
|
| awk '{printf "%s (%s) ", $1, $2}'
|
|
echo
|
|
}
|
|
|
|
mostrar_todas_versiones() {
|
|
echo "$RESPUESTA" | jq -r '.releases | to_entries[] | "\(.key) \(.value[0].requires_python // "N/A")"' \
|
|
| sort -k1 -V -r \
|
|
| awk '{printf "%s (%s) ", $1, $2}'
|
|
echo
|
|
}
|
|
|
|
if [[ "$2" == "--all" ]]; then
|
|
echo -e "\n📚 Versiones disponibles:"
|
|
#echo "$RESPUESTA" | jq -r '.releases | keys[]' | sort -V -r | xargs
|
|
mostrar_todas_versiones
|
|
else
|
|
echo -e "\n📚 Ultimas 10 Versiones estables disponibles:"
|
|
#echo "$RESPUESTA" | jq -r '.releases | keys[]' \
|
|
# | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' \
|
|
# | sort -V -r \
|
|
# | head -n 10 \
|
|
# | xargs
|
|
mostrar_versiones
|
|
fi
|
|
else
|
|
echo "❌ No se encontró información para el paquete '$PAQUETE'"
|
|
fi
|