From d21a4e004e63ce24d93338980dd934259ffa08d4 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Sat, 26 Aug 2017 22:29:19 +1000 Subject: [PATCH] Add list-mods command --- tools/arkmanager | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/tools/arkmanager b/tools/arkmanager index d1ea2d4..dfd6469 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -2018,6 +2018,42 @@ getModIds(){ ) | sort | uniq | grep '^[1-9][0-9]*$' | grep -v '^111111111$' } +# +# Get the Mod details of the installed mods and the requested mods +# +listMods(){ + local modlist + local modid moddir moddesc + declare -A modlist + if [ -n "${serverMapModId}" ]; then + modlist[${serverMapModId}]="serverMapModId" + fi + if [ -n "${ark_TotalConversionMod}" ]; then + modlist[${ark_TotalConversionMod}]="ark_TotalConversionMod" + fi + if [ -n "${ark_GameModIds}" ]; then + for modid in ${ark_GameModIds//,/ }; do + modlist[${modid}]="ark_GameModIds" + done + fi + for modid in "${!arkmod_@}"; do + if [ "${!modid}" != "disabled" ]; then + modlist[${modid#arkmod_}]="${modid}" + fi + done + if [ -z "$ignoreInstalledMods" ]; then + for moddir in "${arkserverroot}/${arkserverdir}/Content/Mods"/*; do + modid="${moddir##*/}" + if [[ "${modid}" =~ ^[1-9][0-9]*$ && "${modid}" != "111111111" ]]; then + modlist[${moddir##*/}]="Content/Mods" + fi + done + fi + for modid in "${!modlist[@]}"; do + printf " %10d: %-20s %s\n" "$modid" "[${modlist[$modid]}]" "$(getModName $modid 2>/dev/null)" + done +} + # # Gets local mod manifest ID # @@ -3288,6 +3324,9 @@ main(){ doUninstallMod "${args[@]}" doInstallMod "${args[@]}" ;; + list-mods) + listMods + ;; backup) doBackup ;;