From 11f3d97cd7a0c4db5dedd6e757adc72cacf9ec7f Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Sat, 11 Feb 2023 03:34:48 +0300 Subject: [PATCH] scripts: flatpak: respect XDG data home in launcher script, add Steam Flatpak data directory --- scripts/flatpak/run.sh | 64 ++++++++++++++++++++++++++++++++---------- 1 file changed, 49 insertions(+), 15 deletions(-) diff --git a/scripts/flatpak/run.sh b/scripts/flatpak/run.sh index 7183cf94..17096006 100755 --- a/scripts/flatpak/run.sh +++ b/scripts/flatpak/run.sh @@ -1,24 +1,58 @@ #!/bin/sh +die() +{ + echo "$@" + exit 1 +} + echo "Xash3D FWGS installed as Flatpak." -export XASH3D_BASEDIR="$HOME/.xash/" -mkdir -p $XASH3D_BASEDIR -cd $XASH3D_BASEDIR -echo "Base directory is $XASH3D_BASEDIR" +# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html +# $XDG_DATA_HOME defines the base directory relative to which user-specific data files should be stored. +# If $XDG_DATA_HOME is either not set or empty, a default equal to $HOME/.local/share should be used. +if [ -z "$XDG_DATA_HOME" ]; then + export XDG_DATA_HOME="$HOME/.local/share" +fi + +if [ -z "$XASH3D_BASEDIR" ]; then + export XASH3D_BASEDIR="$XDG_DATA_HOME/xash3d-fwgs/" +fi + +mkdir -p "$XASH3D_BASEDIR" +cd "$XASH3D_BASEDIR" || die "Can't cd into $XASH3D_BASEDIR" +echo "XASH3D_BASEDIR is $XASH3D_BASEDIR" + +if [ -z "$XASH3D_RODIR" ]; then + # TODO: detect by libraryfolders.vdf and installed apps + STEAMDIRS="\ + $HOME/.local/share/Steam/steamapps/common/ \ + $HOME/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common \ + $HOME/.steam/steam/steamapps/common" + HALFLIFEDIR="Half-Life" + + for i in $STEAMDIRS; do + if [ ! -d "$i" ]; then + continue + fi + + echo "Detected Steam library in $i, probing Half-Life..." + + if [ ! -d "$i$HALFLIFEDIR" ]; then + continue + fi -# TODO: detect by libraryfolders.vdf and installed apps -HALFLIFESTEAMDIRS="../.local/share/Steam/steamapps/common/Half-Life ../.steam/steam/steamapps/common/Half-Life" + echo "Detected Half-Life installation in $i$HALFLIFEDIR..." -for i in $HALFLIFESTEAMDIRS; do -# echo $i - if [ -d "$i" ]; then - echo "Detected Half-Life installation in $i, using as RoDir" - export XASH3D_RODIR=$i - break - fi -done + export XASH3D_RODIR="$i$HALFLIFEDIR" + break + done +fi +echo "XASH3D_RODIR is $XASH3D_RODIR" +if [ -z "$XASH3D_EXTRAS_PAK1" ]; then + export XASH3D_EXTRAS_PAK1=/app/share/xash3d/valve/extras.pk3 +fi +echo "XASH3D_EXTRAS_PAK1 is $XASH3D_EXTRAS_PAK1" -export XASH3D_EXTRAS_PAK1=/app/share/xash3d/valve/extras.pk3 exec $DEBUGGER /app/lib32/xash3d/xash3d "$@"