mirror of
https://github.com/eliasstepanik/ark-ac-server-tools.git
synced 2026-01-23 23:18:28 +00:00
Attempt to determine steam workshop dir
This commit is contained in:
parent
fcdbe681a5
commit
24e9e2954d
@ -396,6 +396,25 @@ getQueryPort(){
|
|||||||
echo "${ark_QueryPort:-27015}"
|
echo "${ark_QueryPort:-27015}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Determine SteamCMD data directory
|
||||||
|
#
|
||||||
|
getSteamWorkshopDir(){
|
||||||
|
for d in "$steamworkshopdir" \
|
||||||
|
"$HOME/.steam/SteamApps/workshop" \
|
||||||
|
"$HOME/.steam/steamapps/workshop" \
|
||||||
|
"$HOME/Steam/SteamApps/workshop" \
|
||||||
|
"$HOME/Steam/steamapps/workshop" \
|
||||||
|
"${steamdataroot:-$steamcmdroot}/steamapps/workshop"; do
|
||||||
|
if [[ -d "${d}" && -f "${d}/appworkshop_${mod_appid}.acf" ]]; then
|
||||||
|
echo "$d"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# default
|
||||||
|
echo "$HOME/Steam/steamapps/workshop"
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Execute RCON command
|
# Execute RCON command
|
||||||
#
|
#
|
||||||
@ -2001,8 +2020,7 @@ checkForModUpdate(){
|
|||||||
local instmft=
|
local instmft=
|
||||||
local availmft=
|
local availmft=
|
||||||
local modname=
|
local modname=
|
||||||
local steamdataroot="${steamdataroot:-${steamcmdroot}}"
|
local steamworkshopdir="$(getSteamWorkshopDir)"
|
||||||
local steamworkshopdir="${steamworkshopdir:-${steamdataroot}/steamapps/workshop}"
|
|
||||||
local cancheckmodavail=1
|
local cancheckmodavail=1
|
||||||
local modmissing=
|
local modmissing=
|
||||||
local revstatcode=
|
local revstatcode=
|
||||||
@ -2119,8 +2137,7 @@ listMods(){
|
|||||||
#
|
#
|
||||||
getLocalModManifest(){
|
getLocalModManifest(){
|
||||||
local modid="$1"
|
local modid="$1"
|
||||||
local steamdataroot="${steamdataroot:-${steamcmdroot}}"
|
local steamworkshopdir="$(getSteamWorkshopDir)"
|
||||||
local steamworkshopdir="${steamworkshopdir:-${steamdataroot}/steamapps/workshop}"
|
|
||||||
if [ ! -f "${steamworkshopdir}/appworkshop_${mod_appid}.acf" ]; then return 0; fi
|
if [ ! -f "${steamworkshopdir}/appworkshop_${mod_appid}.acf" ]; then return 0; fi
|
||||||
local instmft="$(sed -n '/^\t"WorkshopItemsInstalled"$/,/^\t[}]$/{/^\t\t"'"${modid}"'"$/,/^\t\t[}]$/{s|^\t\t\t"manifest"\t\t"\(.*\)"$|\1|p}}' <"${steamworkshopdir}/appworkshop_${mod_appid}.acf")"
|
local instmft="$(sed -n '/^\t"WorkshopItemsInstalled"$/,/^\t[}]$/{/^\t\t"'"${modid}"'"$/,/^\t\t[}]$/{s|^\t\t\t"manifest"\t\t"\(.*\)"$|\1|p}}' <"${steamworkshopdir}/appworkshop_${mod_appid}.acf")"
|
||||||
echo "$instmft"
|
echo "$instmft"
|
||||||
@ -2141,8 +2158,7 @@ isModUpdateAvailable(){
|
|||||||
local modid="$1"
|
local modid="$1"
|
||||||
local instmft="$(getLocalModManifest "$modid")"
|
local instmft="$(getLocalModManifest "$modid")"
|
||||||
local remmft="$(getAvailModManifest "$modid")"
|
local remmft="$(getAvailModManifest "$modid")"
|
||||||
local steamdataroot="${steamdataroot:-${steamcmdroot}}"
|
local steamworkshopdir="$(getSteamWorkshopDir)"
|
||||||
local steamworkshopdir="${steamworkshopdir:-${steamdataroot}/steamapps/workshop}"
|
|
||||||
if [ ! -f "${steamworkshopdir}/appworkshop_${mod_appid}.acf" ]; then return 0; fi
|
if [ ! -f "${steamworkshopdir}/appworkshop_${mod_appid}.acf" ]; then return 0; fi
|
||||||
if [[ -n "${remmft}" && "${instmft}" != "${remmft}" ]]; then
|
if [[ -n "${remmft}" && "${instmft}" != "${remmft}" ]]; then
|
||||||
return 0 # true
|
return 0 # true
|
||||||
@ -2160,8 +2176,7 @@ doDownloadMod(){
|
|||||||
steamcmdroot="$arkserverroot/Engine/Binaries/ThirdParty/SteamCMD/Linux"
|
steamcmdroot="$arkserverroot/Engine/Binaries/ThirdParty/SteamCMD/Linux"
|
||||||
fi
|
fi
|
||||||
doDownloadSteamCMD
|
doDownloadSteamCMD
|
||||||
local steamdataroot="${steamdataroot:-${steamcmdroot}}"
|
local steamworkshopdir="$(getSteamWorkshopDir)"
|
||||||
local steamworkshopdir="${steamworkshopdir:-${steamdataroot}/steamapps/workshop}"
|
|
||||||
local modsrcdir="${steamworkshopdir}/content/$mod_appid/$modid"
|
local modsrcdir="${steamworkshopdir}/content/$mod_appid/$modid"
|
||||||
local moddldir="${steamworkshopdir}/downloads/$mod_appid"
|
local moddldir="${steamworkshopdir}/downloads/$mod_appid"
|
||||||
cd "$steamcmdroot"
|
cd "$steamcmdroot"
|
||||||
@ -2234,8 +2249,7 @@ doDownloadAllMods(){
|
|||||||
#
|
#
|
||||||
isModUpdateNeeded(){
|
isModUpdateNeeded(){
|
||||||
local modid=$1
|
local modid=$1
|
||||||
local steamdataroot="${steamdataroot:-${steamcmdroot}}"
|
local steamworkshopdir="$(getSteamWorkshopDir)"
|
||||||
local steamworkshopdir="${steamworkshopdir:-${steamdataroot}/steamapps/workshop}"
|
|
||||||
local modsrcdir="${steamworkshopdir}/content/$mod_appid/$modid"
|
local modsrcdir="${steamworkshopdir}/content/$mod_appid/$modid"
|
||||||
local moddestdir="$arkserverroot/${arkserverdir}/Content/Mods/$modid"
|
local moddestdir="$arkserverroot/${arkserverdir}/Content/Mods/$modid"
|
||||||
local modbranch="${mod_branch:-Windows}"
|
local modbranch="${mod_branch:-Windows}"
|
||||||
@ -2283,8 +2297,7 @@ isModUpdateNeeded(){
|
|||||||
#
|
#
|
||||||
getModName(){
|
getModName(){
|
||||||
local modid=$1
|
local modid=$1
|
||||||
local steamdataroot="${steamdataroot:-${steamcmdroot}}"
|
local steamworkshopdir="$(getSteamWorkshopDir)"
|
||||||
local steamworkshopdir="${steamworkshopdir:-${steamdataroot}/steamapps/workshop}"
|
|
||||||
local modsrcdir="${steamworkshopdir}/content/$mod_appid/$modid"
|
local modsrcdir="${steamworkshopdir}/content/$mod_appid/$modid"
|
||||||
|
|
||||||
if [ -n "${modsrcdirs[$modid]}" ]; then
|
if [ -n "${modsrcdirs[$modid]}" ]; then
|
||||||
@ -2330,8 +2343,7 @@ isAnyModUpdateNeeded(){
|
|||||||
#
|
#
|
||||||
doExtractMod(){
|
doExtractMod(){
|
||||||
local modid=$1
|
local modid=$1
|
||||||
local steamdataroot="${steamdataroot:-${steamcmdroot}}"
|
local steamworkshopdir="$(getSteamWorkshopDir)"
|
||||||
local steamworkshopdir="${steamworkshopdir:-${steamdataroot}/steamapps/workshop}"
|
|
||||||
local modsrcdir="${steamworkshopdir}/content/$mod_appid/$modid"
|
local modsrcdir="${steamworkshopdir}/content/$mod_appid/$modid"
|
||||||
local moddestdir="$arkserverroot/${arkserverdir}/Content/Mods/$modid"
|
local moddestdir="$arkserverroot/${arkserverdir}/Content/Mods/$modid"
|
||||||
local modextractdir="$moddestdir"
|
local modextractdir="$moddestdir"
|
||||||
@ -2513,8 +2525,7 @@ doExtractMod(){
|
|||||||
#
|
#
|
||||||
doInstallMod(){
|
doInstallMod(){
|
||||||
local modid
|
local modid
|
||||||
local steamdataroot="${steamdataroot:-${steamcmdroot}}"
|
local steamworkshopdir="$(getSteamWorkshopDir)"
|
||||||
local steamworkshopdir="${steamworkshopdir:-${steamdataroot}/steamapps/workshop}"
|
|
||||||
for modid in ${1//,/ }; do
|
for modid in ${1//,/ }; do
|
||||||
if [[ " $* " =~ *" --validate " ]]; then
|
if [[ " $* " =~ *" --validate " ]]; then
|
||||||
if [ -f "${steamworkshopdir}/appworkshop_${mod_appid}.acf" ]; then
|
if [ -f "${steamworkshopdir}/appworkshop_${mod_appid}.acf" ]; then
|
||||||
@ -2602,8 +2613,7 @@ doDisableMod(){
|
|||||||
#
|
#
|
||||||
doRemoveMods(){
|
doRemoveMods(){
|
||||||
local modid
|
local modid
|
||||||
local steamdataroot="${steamdataroot:-${steamcmdroot}}"
|
local steamworkshopdir="$(getSteamWorkshopDir)"
|
||||||
local steamworkshopdir="${steamworkshopdir:-${steamdataroot}/steamapps/workshop}"
|
|
||||||
for modid in ${1//,/ }; do
|
for modid in ${1//,/ }; do
|
||||||
if [ -f "${steamworkshopdir}/appworkshop_${mod_appid}.acf" ]; then
|
if [ -f "${steamworkshopdir}/appworkshop_${mod_appid}.acf" ]; then
|
||||||
sed -i "/^\\t\\t\"${modid}\"/,/^\\t\\t}/d" "${steamworkshopdir}/appworkshop_${mod_appid}.acf"
|
sed -i "/^\\t\\t\"${modid}\"/,/^\\t\\t}/d" "${steamworkshopdir}/appworkshop_${mod_appid}.acf"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user