Files
EmiiBytee--np2kai-ps4/upload-pkg-goldhen-ftp.sh
2026-07-28 06:34:41 +02:00

86 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
usage() {
cat <<'EOF'
Uso:
./upload-pkg-goldhen-ftp.sh <IP_DE_LA_PS4> <archivo.pkg>
Ejemplo:
./upload-pkg-goldhen-ftp.sh \
192.168.1.100 \
IV0000-BREW00984_00-NP2KAIBOOTSTRAP0.pkg
Requisitos:
- FTP de GoldHEN activado
- PS4 y PC en la misma red
- curl instalado
EOF
}
if [[ $# -ne 2 ]]; then
usage
exit 1
fi
PS4_IP="$1"
PKG_PATH="$2"
PS4_PORT="${PS4_FTP_PORT:-2121}"
if [[ ! -f "$PKG_PATH" ]]; then
echo "ERROR: no existe el archivo: $PKG_PATH"
exit 1
fi
case "$PKG_PATH" in
*.pkg|*.PKG)
;;
*)
echo "ERROR: el archivo no parece ser un PKG."
exit 1
;;
esac
if ! command -v curl >/dev/null 2>&1; then
echo "ERROR: curl no está instalado."
exit 1
fi
BASENAME="$(basename "$PKG_PATH")"
# Keep the remote filename deliberately plain.
SAFE_NAME="$(
printf '%s' "$BASENAME" |
sed -E 's/[^A-Za-z0-9._-]+/_/g'
)"
REMOTE_URL="ftp://${PS4_IP}:${PS4_PORT}/data/pkg/${SAFE_NAME}"
echo "PS4: ${PS4_IP}:${PS4_PORT}"
echo "Local: $PKG_PATH"
echo "Destino: /data/pkg/$SAFE_NAME"
echo
echo "Subiendo mediante FTP de GoldHEN..."
curl \
--fail \
--show-error \
--progress-bar \
--ftp-create-dirs \
--connect-timeout 10 \
--retry 2 \
--retry-delay 2 \
-T "$PKG_PATH" \
"$REMOTE_URL"
echo
echo "Transferencia terminada."
echo
echo "En la PS4:"
echo " GoldHEN > Debug Settings > Package Installer"
echo " Package Source: Hdd [ hdd:/data/pkg/ ]"
echo " Instala: $SAFE_NAME"
echo
echo "Después de instalarlo, borra el PKG de /data/pkg"
echo "para recuperar espacio."