Blog/jokoak_euskaraz/stray/Stray_Euskara_Mod/instalatu.sh
(Deskargatu)
#!/usr/bin/env bash
# ============================================================
# Stray — EUSKARAZ itzulpen mod-a Steam Deck-erako instalatzailea
#
# Erabilera (Deck-eko terminalean, Desktop moduan):
# bash instalatu.sh -> instalatu
# bash instalatu.sh --kendu -> desinstalatu (pak-a ezabatu)
# ============================================================
set -e
PAK_NAME="Hk_project-WindowsNoEditor_Override.pak"
MAIN_PAK="Hk_project-WindowsNoEditor.pak"
# 1) Bilatu pak-a script-aren ondoan
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PAK=""
for c in "$SCRIPT_DIR/$PAK_NAME" \
"$SCRIPT_DIR/Stray_Euskara_Mod/$PAK_NAME" \
"$SCRIPT_DIR/outfull/$PAK_NAME"; do
if [ -f "$c" ]; then
PAK="$c"
break
fi
done
if [ -z "$PAK" ]; then
echo "ERRORE: '$PAK_NAME' ez da aurkitu script-aren ondoan."
echo "Mugitu 'instalatu.sh' eta pak-a karpeta berera."
exit 1
fi
# 2) Bilatu Steam liburutegiak (libraryfolders.vdf)
STEAM_BASES=(
"$HOME/.local/share/Steam/steamapps"
"$HOME/.steam/steam/steamapps"
)
VDF=""
for b in "${STEAM_BASES[@]}"; do
if [ -f "$b/libraryfolders.vdf" ]; then
VDF="$b/libraryfolders.vdf"
break
fi
done
LIBRARIES=()
if [ -n "$VDF" ]; then
# formatu zaharra: "0" "/ruta"
while IFS= read -r p; do
[ -n "$p" ] && LIBRARIES+=("$p")
done < <(grep -oP '^\s*"\d+"\s+"\K[^"]+' "$VDF")
# formatu berria: "path" "/ruta"
while IFS= read -r p; do
[ -n "$p" ] && LIBRARIES+=("$p")
done < <(grep -oP '^\s*"path"\s+"\K[^"]+' "$VDF")
fi
# Beti erantsi lehenetsitakoak (erroak)
LIBRARIES+=("$HOME/.local/share/Steam")
LIBRARIES+=("$HOME/.steam/steam")
# 3) Bilatu jokoaren Paks karpeta
GAME_PAKS=""
for lib in "${LIBRARIES[@]}"; do
lib="${lib%/}/steamapps/common"
# STRAY izen-aldakiak
for dir in "$lib/STRAY" "$lib/Stray" "$lib/stray"; do
if [ -f "$dir/Data/Hk_project/Content/Paks/$MAIN_PAK" ] || \
[ -f "$dir/Hk_project/Content/Paks/$MAIN_PAK" ] || \
[ -f "$dir/Content/Paks/$MAIN_PAK" ]; then
GAME_PAKS="$(dirname "$(find "$dir" -name "$MAIN_PAK" -path '*Content/Paks*' 2>/dev/null | head -1)")"
break
fi
done
[ -n "$GAME_PAKS" ] && break
done
if [ -z "$GAME_PAKS" ]; then
echo "ERRORE: ez da Stray instalazioa aurkitu Steam liburutegietan."
echo "Egiaztatu jokoa deskargatuta dagoela eta probatu berriro."
echo "Liburutegiak egiaztatu: ${LIBRARIES[*]}"
exit 1
fi
# 4) Instalatu edo desinstalatu
DEST="$GAME_PAKS/$PAK_NAME"
if [ "$1" = "--kendu" ] || [ "$1" = "-k" ]; then
if [ -f "$DEST" ]; then
rm -f "$DEST"
echo "==> Mod-a kendu da: $DEST"
else
echo "==> Ez zegoen instalatuta."
fi
exit 0
fi
cp "$PAK" "$DEST"
echo "==> MOD-A INSTALATUTA"
echo " Jokoa: $GAME_PAKS"
echo " Pak-a: $DEST"
echo ""
echo "Ondoren:"
echo " 1. Steam-etik piztu Stray."
echo " 2. Hizkuntza ezarpenak 'English' edo 'Français' gisa baldin badaude,"
echo " euskaraz agertuko da."
echo ""
echo " 3. (Aukerakoa) Desinstalatzeko: bash instalatu.sh --kendu"
echo ""
echo "OHARRA: Steam-en 'fitxategiak berreskuratu' (Verify integrity) exekutatzeak"
echo "ez du pak-a ezabatu behar, baina egiten badu, berriro exekutatu instalatu.sh."