Skip to content

Commit 8bff282

Browse files
authored
Commandline: Flatten getGameExe checks (#1031)
1 parent 90cbc84 commit 8bff282

1 file changed

Lines changed: 39 additions & 34 deletions

File tree

steamtinkerlaunch

Lines changed: 39 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
PREFIX="/usr"
77
PROGNAME="SteamTinkerLaunch"
88
NICEPROGNAME="Steam Tinker Launch"
9-
PROGVERS="v14.0.20240128-1"
9+
PROGVERS="v14.0.20240128-2"
1010
PROGCMD="${0##*/}"
1111
PROGINTERNALPROTNAME="Proton-stl"
1212
SHOSTL="stl"
@@ -7896,49 +7896,54 @@ function getGameExe {
78967896
SEARCHSTEAMSHORTCUTS="${2:-0}" # Default to not searching Steam shortcuts
78977897

78987898
if [ -z "$1" ]; then
7899+
writelog "ERROR" "${FUNCNAME[0]} - Called getGameExe without AppID -- Nothing to do!"
78997900
echo "A Game ID is required as argument"
7900-
else
7901-
INAID="$1"
7902-
EXE=""
7903-
NOTFOUNDSTR="No Executable or SteamTinkerLaunch file found for '$1'"
79047901

7905-
# Try to get appid from game name -- If nultiple values, just pick first one
7906-
if ! [ "$INAID" -eq "$INAID" ] 2>/dev/null; then
7907-
INAID="$( getIDFromTitle "$INAID" | head -n1 )"
7908-
INAID="$( trimWhitespaces "${INAID%(*}")"
7909-
fi
7902+
return 1
7903+
fi
79107904

7911-
EXEGAMNAM="$( getTitleFromID "$INAID" )"
7905+
INAID="$1"
7906+
EXE=""
7907+
NOTFOUNDSTR="No Executable or SteamTinkerLaunch file found for '$1'"
79127908

7913-
if [ -n "$INAID" ] && [ -f "$GEMETA/${INAID}.conf" ]; then
7914-
# Some games might only have "EXECUTABLE" in their meta conf file
7915-
EXE="$(grep "^EXECUTABLE" "$GEMETA/${INAID}.conf" | cut -d '"' -f2)"
7916-
if [ -z "${EXE}" ]; then
7917-
EXE="$(grep "^GAMEEXE" "$GEMETA/${INAID}.conf" | cut -d '"' -f2)"
7918-
fi
7909+
# Try to get appid from game name -- If multiple values, just pick first one
7910+
if ! [ "$INAID" -eq "$INAID" ] 2>/dev/null; then
7911+
INAID="$( getIDFromTitle "$INAID" | head -n1 )"
7912+
INAID="$( trimWhitespaces "${INAID%(*}")"
7913+
fi
79197914

7920-
if [ -n "$EXE" ]; then
7921-
EXE="$EXEGAMNAM ($INAID) -> $( getGameDir "$INAID" "only" )/$EXE"
7922-
fi
7923-
fi
7915+
EXEGAMNAM="$( getTitleFromID "$INAID" )"
79247916

7925-
if [ -z "$EXE" ] && [ "$SEARCHSTEAMSHORTCUTS" -eq 1 ] && haveAnySteamShortcuts ; then
7926-
# Have to search on all shortcuts because we need to check game name as fallback
7927-
while read -r SCVDFE; do
7928-
SCVDFEAID="$( parseSteamShortcutEntryAppID "$SCVDFE" )"
7929-
SCVDFENAME="$( parseSteamShortcutEntryAppName "$SCVDFE" )"
7930-
SCVDFEEXE="$( parseSteamShortcutEntryExe "$SCVDFE" )"
7917+
# Try to get game EXE from STL meta file
7918+
if [ -n "$INAID" ] && [ -f "$GEMETA/${INAID}.conf" ]; then
7919+
# Some games might only have "EXECUTABLE" in their meta conf file
7920+
EXE="$(grep "^EXECUTABLE" "$GEMETA/${INAID}.conf" | cut -d '"' -f2)"
7921+
if [ -z "${EXE}" ]; then
7922+
EXE="$(grep "^GAMEEXE" "$GEMETA/${INAID}.conf" | cut -d '"' -f2)"
7923+
fi
79317924

7932-
if [ "$SCVDFEAID" -eq "$1" ] 2>/dev/null || [[ ${SCVDFENAME,,} == *"${1,,}"* ]]; then
7933-
SCVDFEEXE="${SCVDFEEXE#\"}"
7934-
EXE="$SCVDFENAME ($SCVDFEAID) -> ${SCVDFEEXE%\"}"
7935-
break
7936-
fi
7937-
done <<< "$( getSteamShortcutHex )"
7925+
if [ -n "$EXE" ]; then
7926+
EXE="$EXEGAMNAM ($INAID) -> $( getGameDir "$INAID" "only" )/$EXE"
79387927
fi
7928+
fi
79397929

7940-
echo "${EXE:-$NOTFOUNDSTR}"
7930+
# Search on game shortcuts if EXE still not found
7931+
if [ -z "$EXE" ] && [ "$SEARCHSTEAMSHORTCUTS" -eq 1 ] && haveAnySteamShortcuts ; then
7932+
# Have to search on all shortcuts because we need to check game name as fallback
7933+
while read -r SCVDFE; do
7934+
SCVDFEAID="$( parseSteamShortcutEntryAppID "$SCVDFE" )"
7935+
SCVDFENAME="$( parseSteamShortcutEntryAppName "$SCVDFE" )"
7936+
SCVDFEEXE="$( parseSteamShortcutEntryExe "$SCVDFE" )"
7937+
7938+
if [ "$SCVDFEAID" -eq "$1" ] 2>/dev/null || [[ ${SCVDFENAME,,} == *"${1,,}"* ]]; then
7939+
SCVDFEEXE="${SCVDFEEXE#\"}"
7940+
EXE="$SCVDFENAME ($SCVDFEAID) -> ${SCVDFEEXE%\"}"
7941+
break
7942+
fi
7943+
done <<< "$( getSteamShortcutHex )"
79417944
fi
7945+
7946+
echo "${EXE:-$NOTFOUNDSTR}"
79427947
}
79437948

79447949
function getCompatData {

0 commit comments

Comments
 (0)