Tfe

Ongi etorri tfe-ren webgunera...

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."