forked from CastroFidel/PortWINE
вынес все что связанное с изображениями в отдельный скрипт
This commit is contained in:
parent
bca5c38922
commit
150953c7e6
@ -3,13 +3,12 @@
|
||||
# based on https://github.com/sonic2kk/steamtinkerlaunch/blob/master/steamtinkerlaunch
|
||||
PROGNAME="PortProton"
|
||||
NOSTAPPNAME="$name_desktop"
|
||||
NOSTEXEPATH="\"${STEAM_SCRIPTS}/${name_desktop}.sh\""
|
||||
# NOSTSTDIR="\"${PATH_TO_GAME}\""
|
||||
NOSTSHPATH="${STEAM_SCRIPTS}/${name_desktop}.sh"
|
||||
NOSTEXEPATH="\"${NOSTSHPATH}\""
|
||||
NOSTICONPATH="${PORT_WINE_PATH}/data/img/$name_desktop_png.png"
|
||||
if [[ -z "${NOSTSTDIR}" ]] ; then
|
||||
NOSTSTDIR="\"${STEAM_SCRIPTS}\""
|
||||
fi
|
||||
NOSTICONPATH="${PORT_WINE_PATH}/data/img/$name_desktop_png.png"
|
||||
BASESTEAMGRIDDBAPI="https://www.steamgriddb.com/api/v2"
|
||||
|
||||
## How Non-Steam AppIDs work, because it took me almost a year to figure this out
|
||||
## ----------------------
|
||||
@ -55,151 +54,10 @@ function generateShortcutGridAppId {
|
||||
## ----------
|
||||
### END MAGIC APPID FUNCTIONS
|
||||
|
||||
NOSTAIDVDF="$(generateShortcutVDFAppId "${NOSTAPPNAME}${NOSTEXEPATH}" )" # signed integer AppID, stored in the VDF as hexidecimal - ex: -598031679
|
||||
NOSTAIDVDFHEX="$( generateShortcutVDFHexAppId "$NOSTAIDVDF" )" # 4byte little-endian hexidecimal of above 32bit signed integer, which we write out to the binary VDF - ex: c1c25adc
|
||||
NOSTAIDVDF="$(generateShortcutVDFAppId "${NOSTAPPNAME}${NOSTEXEPATH}")" # signed integer AppID, stored in the VDF as hexidecimal - ex: -598031679
|
||||
NOSTAIDVDFHEX="$(generateShortcutVDFHexAppId "$NOSTAIDVDF")" # 4byte little-endian hexidecimal of above 32bit signed integer, which we write out to the binary VDF - ex: c1c25adc
|
||||
NOSTAIDVDFHEXFMT="\x$(awk '{$1=$1}1' FPAT='.{2}' OFS="\\\x" <<< "$NOSTAIDVDFHEX")" # binary-formatted string hex of the above which we actually write out - ex: \xc1\xc2\x5a\xdc
|
||||
NOSTAIDGRID="$( generateShortcutGridAppId "$NOSTAIDVDF" )" # unsigned 32bit ingeger version of "$NOSTAIDVDF", which is used as the AppID for Steam artwork ("grids"), as well as for our shortcuts
|
||||
|
||||
# Set artwork for Steam game by copying/linking/moving passed artwork to steam grid folder
|
||||
function setGameArt {
|
||||
function applyGameArt {
|
||||
GAMEARTAPPID="$1"
|
||||
GAMEARTSOURCE="$2" # e.g. /home/gaben/GamesArt/cs2_hero.png
|
||||
GAMEARTSUFFIX="$3" # e.g. "_hero" etc
|
||||
GAMEARTCMD="$4"
|
||||
|
||||
GAMEARTBASE="$( basename "$GAMEARTSOURCE" )"
|
||||
GAMEARTDEST="${SGGRIDDIR}/${GAMEARTAPPID}${GAMEARTSUFFIX}.${GAMEARTBASE#*.}" # path to filename in grid e.g. turns "/home/gaben/GamesArt/cs2_hero.png" into "~/.local/share/Steam/userdata/1234567/config/grid/4440654_hero.png"
|
||||
|
||||
if [[ -n "$GAMEARTSOURCE" ]] ; then
|
||||
if [[ -f "$GAMEARTDEST" ]] ; then
|
||||
rm "$GAMEARTDEST"
|
||||
fi
|
||||
|
||||
if [[ -f "$GAMEARTSOURCE" ]] ; then
|
||||
$GAMEARTCMD "$GAMEARTSOURCE" "$GAMEARTDEST"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
GAME_APPID="$1" # We don't validate AppID as it would drastically slow down the process for large libraries
|
||||
|
||||
SETARTCMD="cp" # Default command will copy art
|
||||
for i in "$@"; do
|
||||
case $i in
|
||||
-hr=*|--hero=*)
|
||||
SGHERO="${i#*=}" # <appid>_hero.png -- Banner used on game screen, logo goes on top of this
|
||||
shift ;;
|
||||
-lg=*|--logo=*)
|
||||
SGLOGO="${i#*=}" # <appid>_logo.png -- Logo used e.g. on game screen
|
||||
shift ;;
|
||||
-ba=*|--boxart=*)
|
||||
SGBOXART="${i#*=}" # <appid>p.png -- Used in library
|
||||
shift ;;
|
||||
-tf=*|--tenfoot=*)
|
||||
SGTENFOOT="${i#*=}" # <appid>.png -- Used as small boxart for e.g. most recently played banner
|
||||
shift ;;
|
||||
--copy)
|
||||
SETARTCMD="cp" # Copy file to grid folder -- Default
|
||||
shift ;;
|
||||
--link)
|
||||
SETARTCMD="ln -s" # Symlink file to grid folder
|
||||
shift ;;
|
||||
--move)
|
||||
SETARTCMD="mv" # Move file to grid folder
|
||||
shift ;;
|
||||
esac
|
||||
done
|
||||
|
||||
applyGameArt "$GAME_APPID" "$SGHERO" "_hero" "$SETARTCMD"
|
||||
applyGameArt "$GAME_APPID" "$SGLOGO" "_logo" "$SETARTCMD"
|
||||
applyGameArt "$GAME_APPID" "$SGBOXART" "p" "$SETARTCMD"
|
||||
applyGameArt "$GAME_APPID" "$SGTENFOOT" "" "$SETARTCMD"
|
||||
}
|
||||
|
||||
# This is formatted as a flag because we can pass "$SGACOPYMETHOD" as an argument to setGameArt, and it will be interpreted as --copy
|
||||
SGACOPYMETHOD="${SGACOPYMETHOD:---copy}"
|
||||
|
||||
## Generic function to fetch some artwork from SteamGridDB based on an endpoint
|
||||
## TODO: Steam only officially supports PNGs, test to see if WebP works when manually copied, and if it doesn't, we should try to only download PNG files
|
||||
## TODO: Add max filesize option? Some artworks are really big, we should skip ones that are too large (though this may mean many animated APNG artworks will get skipped, because APNG can be huge)
|
||||
function downloadArtFromSteamGridDB {
|
||||
# Required parameters
|
||||
SEARCHID="$1"
|
||||
SEARCHENDPOINT="$2"
|
||||
SGDBFILENAME="${3:-SEARCHID}"
|
||||
|
||||
# Optional parameters
|
||||
SEARCHSTYLES="$4"
|
||||
SEARCHDIMS="$5"
|
||||
SEARCHTYPES="$6"
|
||||
SEARCHNSFW="$7"
|
||||
SEARCHHUMOR="$8"
|
||||
SEARCHEPILEPSY="$9"
|
||||
|
||||
SGDBHASFILE="${10:-SGDBHASFILE}"
|
||||
FORCESGDBDLTOSTEAM="${11}"
|
||||
|
||||
SGDB_ENDPOINT_STR="${SEARCHENDPOINT}/$(echo "$SEARCHID" | awk '{print $1}' | paste -s -d, -)?"
|
||||
|
||||
[[ -n "$SEARCHSTYLES" ]] && SGDB_ENDPOINT_STR+="&styles=${SEARCHSTYLES}"
|
||||
[[ -n "$SEARCHDIMS" ]] && SGDB_ENDPOINT_STR+="&dimensions=${SEARCHDIMS}"
|
||||
[[ -n "$SEARCHTYPES" ]] && SGDB_ENDPOINT_STR+="&types=${SEARCHTYPES}"
|
||||
[[ -n "$SEARCHNSFW" ]] && SGDB_ENDPOINT_STR+="&nsfw=${SEARCHNSFW}"
|
||||
[[ -n "$SEARCHHUMOR" ]] && SGDB_ENDPOINT_STR+="&humor=${SEARCHHUMOR}"
|
||||
[[ -n "$SEARCHEPILEPSY" ]] && SGDB_ENDPOINT_STR+="&epilepsy=${SEARCHEPILEPSY}"
|
||||
|
||||
RESPONSE=$(curl -H "Authorization: Bearer $SGDBAPIKEY" -s "$SGDB_ENDPOINT_STR" 2> >(grep -v "SSL_INIT"))
|
||||
if ! jq -e '.success' <<< "$RESPONSE" > /dev/null; then
|
||||
echo "The server response wasn't 'success' for this batch of requested games."
|
||||
return
|
||||
fi
|
||||
|
||||
RESPONSE_LENGTH=$(jq '.data | length' <<< "$RESPONSE")
|
||||
|
||||
if [[ "$RESPONSE_LENGTH" == "0" ]] ; then
|
||||
echo "No grid found to download - maybe loosen filters?"
|
||||
fi
|
||||
|
||||
if jq -e ".data[0].url" <<< "$RESPONSE" > /dev/null; then
|
||||
RESPONSE="{\"success\":true,\"data\":[$RESPONSE]}"
|
||||
RESPONSE_LENGTH=1
|
||||
fi
|
||||
|
||||
for i in $(seq 0 $(("$RESPONSE_LENGTH" - 1))); do
|
||||
if ! jq -e ".data[$i].success" <<< "$RESPONSE" > /dev/null; then
|
||||
echo "The server response for '$SEARCHID' wasn't 'success'"
|
||||
fi
|
||||
if ! URLSTR=$(jq -e -r ".data[$i].data[0].url" <<< "$RESPONSE"); then
|
||||
echo "No grid found to download for '$SEARCHID' - maybe loosen filters?"
|
||||
fi
|
||||
|
||||
GRIDDLURL="${URLSTR//\"}"
|
||||
if grep -q "^https" <<< "$GRIDDLURL"; then
|
||||
DLSRC="${GRIDDLURL//\"}"
|
||||
GRIDDLDIR="${SGGRIDDIR}"
|
||||
mkdir -p "$GRIDDLDIR"
|
||||
DLDST="${GRIDDLDIR}/${SGDBFILENAME}.${GRIDDLURL##*.}"
|
||||
STARTDL=1
|
||||
|
||||
if [[ -f "$DLDST" ]] ; then
|
||||
if [[ "$SGDBHASFILE" == "backup" ]] ; then
|
||||
BACKDIR="${GRIDDLDIR}/backup"
|
||||
mkdir -p "$BACKDIR"
|
||||
mv "$DLDST" "$BACKDIR"
|
||||
elif [[ "$SGDBHASFILE" == "replace" ]] ; then
|
||||
rm "$DLDST" 2>/dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$STARTDL" -eq 1 ]] ; then
|
||||
curl -f -# -A 'Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)' -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' -L "$DLSRC" -o "$DLDST" 2>&1
|
||||
fi
|
||||
else
|
||||
echo "No grid found to download for '$SEARCHID' - maybe loosen filters?"
|
||||
fi
|
||||
done
|
||||
}
|
||||
NOSTAIDGRID="$(generateShortcutGridAppId "$NOSTAIDVDF")" # unsigned 32bit ingeger version of "$NOSTAIDVDF", which is used as the AppID for Steam artwork ("grids"), as well as for our shortcuts
|
||||
|
||||
if [[ -f "$SCPATH" ]] ; then
|
||||
cp "$SCPATH" "${SCPATH//.vdf}_${PROGNAME}_backup.vdf" 2>/dev/null
|
||||
@ -211,132 +69,27 @@ else
|
||||
NEWSET=0
|
||||
fi
|
||||
|
||||
# Search SteamGridDB endpoint using game title and return the first (best match) Game ID
|
||||
function getSGDBGameIDFromTitle {
|
||||
SGDBSEARCHNAME="$1"
|
||||
|
||||
if [[ -n "$SGDBSEARCHNAME" ]] ; then
|
||||
SGDBSEARCHENDPOINT="${BASESTEAMGRIDDBAPI}/search/autocomplete/${SGDBSEARCHNAME}"
|
||||
SGDBSEARCHNAMERESP="$(curl -H "Authorization: Bearer $SGDBAPIKEY" -s "$SGDBSEARCHENDPOINT" 2> >(grep -v "SSL_INIT") )"
|
||||
if jq -e '.success' 1> /dev/null <<< "$SGDBSEARCHNAMERESP"; then
|
||||
if [[ "$(jq '.data | length' <<< "$SGDBSEARCHNAMERESP" )" -gt 0 ]] ; then
|
||||
SGDBSEARCH_FOUNDNAME="$(jq '.data[0].name' <<< "$SGDBSEARCHNAMERESP" )"
|
||||
SGDBSEARCH_FOUNDGAID="$(jq '.data[0].id' <<< "$SGDBSEARCHNAMERESP" )"
|
||||
|
||||
echo "$SGDBSEARCH_FOUNDGAID"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "No game name given."
|
||||
fi
|
||||
}
|
||||
|
||||
# Used to get either Steam or Non-Steam artwork depending on a flag -- Used internally and for commandline usage
|
||||
function commandlineGetSteamGridDBArtwork {
|
||||
GSGDBA_HASFILE="$SGDBHASFILE" # Optional override for how to handle existinf file (downloadArtFromSteamGridDB defaults to '$SGDBHASFILE')
|
||||
GSGDBA_APPLYARTWORK="$SGDBDLTOSTEAM"
|
||||
GSGDBA_SEARCHNAME=""
|
||||
GSGDBA_FOUNDGAMEID="" # ID found from SteamGridDB endpoint using GSGDBA_SEARCHNAME
|
||||
for i in "${@}"; do
|
||||
case $i in
|
||||
--search-name=*)
|
||||
GSGDBA_SEARCHNAME="${i#*=}" # Optional SteamGridDB Game Name -- Will use this to try and find matching SteamGridDB Game Art
|
||||
shift ;;
|
||||
--nonsteam)
|
||||
SGDBENDPOINTTYPE="game"
|
||||
shift ;;
|
||||
--filename-appid=*)
|
||||
GSGDBA_FILENAME="${i#*=}" # AppID to use in filename (Non-Steam Games need a different AppID)
|
||||
shift ;;
|
||||
## Override Global Menu setting for how to handle existing artwork
|
||||
## in case user wants to replace all existing artwork, default STL setting is 'skip' and will only copy files over to grid dir if they don't exist, so user can easily fill in missing artwork only)
|
||||
--replace-existing)
|
||||
GSGDBA_HASFILE="replace"
|
||||
shift ;;
|
||||
--backup-existing)
|
||||
GSGDBA_HASFILE="backup"
|
||||
shift ;;
|
||||
## Flag to force downloading to SteamGridDB folder (used for addNonSteamGame internally)
|
||||
--apply)
|
||||
GSGDBA_APPLYARTWORK="1"
|
||||
shift ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# If we pass a name to search on and we get a Game ID back from SteamGridDB, set this as the ID to search for artwork on
|
||||
if [[ -n "$GSGDBA_SEARCHNAME" ]] ; then
|
||||
if [[ -n "$GSGDBA_FILENAME" ]] ; then
|
||||
GSGDBA_FOUNDGAMEID="$( getSGDBGameIDFromTitle "$GSGDBA_SEARCHNAME" )"
|
||||
if [[ -n "$GSGDBA_FOUNDGAMEID" ]] ; then
|
||||
GSGDBA_APPID="$GSGDBA_FOUNDGAMEID"
|
||||
SGDBENDPOINTTYPE="game"
|
||||
fi
|
||||
else
|
||||
echo "You must provide a filename AppID when searching with SteamGridDB Game Name"
|
||||
fi
|
||||
fi
|
||||
|
||||
SGDBSEARCHENDPOINT_HERO="${BASESTEAMGRIDDBAPI}/heroes/${SGDBENDPOINTTYPE}"
|
||||
SGDBSEARCHENDPOINT_LOGO="${BASESTEAMGRIDDBAPI}/logos/${SGDBENDPOINTTYPE}"
|
||||
SGDBSEARCHENDPOINT_BOXART="${BASESTEAMGRIDDBAPI}/grids/${SGDBENDPOINTTYPE}" # Grid endpoint is used for Boxart and Tenfoot, which SteamGridDB counts as vertical/horizontal grids respectively
|
||||
SGDB_ENDPOINT_STR_TEST="${SGDBSEARCHENDPOINT_HERO}/$(echo "$GSGDBA_APPID" | awk '{print $1}' | paste -s -d, -)?"
|
||||
|
||||
|
||||
set -o pipefail
|
||||
TEST_RESPONSE=$(curl -H "Authorization: Bearer $SGDBAPIKEY" -s "$SGDB_ENDPOINT_STR_TEST" 2> >(grep -v "SSL_INIT"))
|
||||
if [[ "${PIPESTATUS[0]}" != 0 ]] && [[ "$DOWNLOAD_STEAM_GRID" != 0 ]]; then
|
||||
pw_notify_send -i info \
|
||||
"${translations[SteamGridDB is not responding, forcing cover download to be disabled]}"
|
||||
sed -i 's/DOWNLOAD_STEAM_GRID=.*/DOWNLOAD_STEAM_GRID="0"/' "$USER_CONF"
|
||||
export DOWNLOAD_STEAM_GRID="0"
|
||||
return
|
||||
fi
|
||||
|
||||
# Download Hero, Logo, Boxart, Tenfoot from SteamGridDB from given endpoint using given AppID
|
||||
# On SteamGridDB tenfoot called horizontal Steam grid, so fetch it by passing specific dimensions matching this -- Users can override this, but default is what SteamGridDB expects for the tenfoot sizes
|
||||
if [[ ! -z "$GSGDBA_FOUNDGAMEID" ]] ; then
|
||||
pw_start_progress_bar_block "${translations[Please wait. downloading covers for]} $NOSTAPPNAME"
|
||||
|
||||
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_HERO" "${GSGDBA_FILENAME}_hero" "$SGDBHEROSTYLES" "$SGDBHERODIMS" "$SGDBHEROTYPES" "$SGDBHERONSFW" "$SGDBHEROHUMOR" "$SGDBHEROEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
|
||||
# Logo doesn't have dimensions, so it's left intentionally blank
|
||||
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_LOGO" "${GSGDBA_FILENAME}_logo" "$SGDBLOGOSTYLES" "" "$SGDBLOGOTYPES" "$SGDBLOGONSFW" "$SGDBLOGOHUMOR" "$SGDBLOGOEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
|
||||
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_BOXART" "${GSGDBA_FILENAME}p" "$SGDBBOXARTSTYLES" "$SGDBBOXARTDIMS" "$SGDBBOXARTTYPES" "$SGDBBOXARTNSFW" "$SGDBBOXARTHUMOR" "$SGDBBOXARTEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
|
||||
downloadArtFromSteamGridDB "$GSGDBA_APPID" "$SGDBSEARCHENDPOINT_BOXART" "${GSGDBA_FILENAME}" "$SGDBTENFOOTSTYLES" "$SGDBTENFOOTDIMS" "$SGDBTENFOOTTYPES" "$SGDBTENFOOTNSFW" "$SGDBTENFOOTHUMOR" "$SGDBTENFOOTEPILEPSY" "$GSGDBA_HASFILE" "$GSGDBA_APPLYARTWORK"
|
||||
|
||||
pw_stop_progress_bar
|
||||
fi
|
||||
}
|
||||
|
||||
## Fetch artwork from SteamGridDB
|
||||
# Regular artwork
|
||||
# The entered search name is prioritised over actual game EXE name, only one will be used and we will always prefer custom name
|
||||
# Ex: user names Non-Steam Game "The Elder Scrolls IV: Oblivion" but they enter a custom search name because they want artwork for "The Elder Scrolls IV: Oblivion Game of the Year Edition"
|
||||
# In case art is not found for the custom name, users should enter either the Steam AppID or the SteamGridDB Game ID to use as a fallback (Steam AppID will always be preferred because it will always be exact)
|
||||
#
|
||||
# Therefore, the order of priority for artwork searching is:
|
||||
# 1. Name search (only ONE of the below will be used)
|
||||
# a. If the user enters a custom search name with --steamgriddb-game-name, search on that
|
||||
# b. Otherwise, use the Non-Steam Game name
|
||||
# 2. Fallback to ID search if no SteamGridDB ID is found on the name search
|
||||
# a. If the user enters a Steam AppID with --steamgriddb-steam-appid, search on that
|
||||
# b. Otherwise, fall back to searching on an entered SteamGridDB Game ID
|
||||
# In short, search on ONE of the names, and if a Game ID is not found on either of these, fall back to searching on ONE of the passed IDs
|
||||
# If no IDs are found after all of this, we can't get artwork. We will not fall back to EXE name if no ID is found on custom name, and we will not fall back to SteamGridDB Game ID if no art is found for Steam AppID
|
||||
# If no values are provided we will simply search on Non-Steam Game name
|
||||
NOSTSEARCHNAME="" # Name to search for SteamGridDB Game ID on (either custom name or app name)
|
||||
NOSTSEARCHID="" # ID to search for the SteamGridDB artwork on (either Steam AppID or SteamGridDB Game ID)
|
||||
NOSTSEARCHFLAG="--nonsteam" # Whether to search using a Steam AppID or SteamGridDB Game ID (will be set to --steam if we get an AppID)
|
||||
|
||||
# Only add NOSTAPPNAME as fallback if we don't have an ID to search on, because commandlineGetSteamGridDBArtwork will prefer name over ID, so if we have to fall back to Non-Steam Name (i.e. no entered custom name) then only do so if we don't have an ID given
|
||||
if [[ -n "$NOSTAPPNAME" ]] ; then
|
||||
NOSTSEARCHNAME="$NOSTAPPNAME"
|
||||
NOSTSEARCHNAME="${NOSTSEARCHNAME// /_}"
|
||||
fi
|
||||
|
||||
# Store the ID we searched with, so getSteamGridDBNonSteamIcon doesn't have to hit the endpoint again and we save an API call
|
||||
export AppName="${NOSTAPPNAME}"
|
||||
export AppId="${NOSTAIDGRID}"
|
||||
if [[ "$DOWNLOAD_STEAM_GRID" == "1" ]] ; then
|
||||
commandlineGetSteamGridDBArtwork --search-name="$NOSTSEARCHNAME" --filename-appid="$NOSTAIDGRID" "$NOSTSEARCHFLAG" --apply --replace-existing
|
||||
pw_start_progress_bar_block "${translations[Please wait. downloading covers for]} ${AppName}"
|
||||
source "${PORT_SCRIPTS_PATH}/get_images.sh"
|
||||
pw_stop_progress_bar
|
||||
fi
|
||||
|
||||
echo "#!/usr/bin/env bash" > "${NOSTSHPATH}"
|
||||
echo "# AppName=\""${AppName}\""" >> "${NOSTSHPATH}"
|
||||
echo "# AppId=${AppId}" >> "${NOSTSHPATH}"
|
||||
echo "# SteamAppId=${SteamAppId:-0}" >> "${NOSTSHPATH}"
|
||||
echo "# SteamGridDBId=${SteamGridDBId:-0}" >> "${NOSTSHPATH}"
|
||||
echo "export START_FROM_STEAM=1" >> "${NOSTSHPATH}"
|
||||
echo "export LD_PRELOAD=" >> "${NOSTSHPATH}"
|
||||
if check_flatpak
|
||||
then echo "flatpak run ru.linux_gaming.PortProton \"${portwine_exe}\" " >> "${NOSTSHPATH}"
|
||||
else echo "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" " >> "${NOSTSHPATH}"
|
||||
fi
|
||||
chmod u+x "${NOSTSHPATH}"
|
||||
|
||||
{
|
||||
printf '\x00%s\x00' "$NEWSET"
|
||||
printf '\x02%s\x00%b' "appid" "$NOSTAIDVDFHEXFMT"
|
||||
@ -366,7 +119,3 @@ fi
|
||||
printf '\x00%s\x00' "tags"
|
||||
printf '\x08\x08\x08\x08'
|
||||
} >> "$SCPATH"
|
||||
|
||||
if [[ "$DOWNLOAD_STEAM_GRID" == "1" ]] ; then
|
||||
setGameArt "$NOSTAIDGRID" --hero="$NOSTGHERO" --logo="$NOSTGLOGO" --boxart="$NOSTGBOXART" --tenfoot="$NOSTGTENFOOT" "$SGACOPYMETHOD"
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user