From 80fd25a33db5f822964b96c8539ece74ad82f9ee Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Sat, 21 Nov 2015 22:39:46 +1000 Subject: [PATCH] Move config file migration to separate install-time script --- tools/install.sh | 40 ++-------------------------------------- tools/migrate-config.sh | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 38 deletions(-) create mode 100755 tools/migrate-config.sh diff --git a/tools/install.sh b/tools/install.sh index 3c3fbbc..f81348d 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -168,25 +168,7 @@ if [ "$userinstall" == "yes" ]; then # Copy arkmanager.cfg to ~/.arkmanager.cfg if it doesn't already exist if [ -f "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" ]; then - newopts=( arkbackupdir arkautorestartfile install_bindir install_libexecdir install_datadir mod_appid ) - newopt_steamcmd_appinfocache="${PREFIX}/Steam/appcache/appinfo.vdf" - newopt_arkbackupdir="${PREFIX}/ARK-Backups" - newopt_arkautorestartfile="ShooterGame/Saved/.autorestart" - newopt_install_bindir="${BINDIR}" - newopt_install_libexecdir="${LIBEXECDIR}" - newopt_install_datadir="${DATADIR}" - newopt_mod_appid=346110 - - if grep '^\(servermail\|arkstVersion\)=' "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" >/dev/null 2>&1; then - sed -i '/^\(servermail\|arkstVersion\)=/d' "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" - fi - - for optname in "${newopts[@]}"; do - if ! grep "^${optname}=" "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" >/dev/null 2>&1; then - noptname="newopt_${optname}" - echo "${optname}='${!noptname}'" >>"${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" - fi - done + bash ./migrate-config.sh "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" echo "A previous version of ARK Server Tools was detected in your system, your old configuration was not overwritten. You may need to manually update it." echo "A copy of the new configuration file was included in '${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg.NEW'. Make sure to review any changes and update your config accordingly!" @@ -303,25 +285,7 @@ else "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg.NEW" if [ -f "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" ]; then - newopts=( arkbackupdir arkautorestartfile install_bindir install_libexecdir install_datadir mod_appid ) - newopt_steamcmd_appinfocache="/home/${steamcmd_user}/Steam/appcache/appinfo.vdf" - newopt_arkbackupdir="/home/${steamcmd_user}/ARK-Backups" - newopt_arkautorestartfile="ShooterGame/Saved/.autorestart" - newopt_install_bindir="${BINDIR}" - newopt_install_libexecdir="${LIBEXECDIR}" - newopt_install_datadir="${DATADIR}" - newopt_mod_appid=346110 - - if grep '^\(servermail\|arkstVersion\)=' "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" >/dev/null 2>&1; then - sed -i '/^\(servermail\|arkstVersion\)=/d' "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" - fi - - for optname in "${newopts[@]}"; do - if ! grep "^${optname}=" "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" >/dev/null 2>&1; then - noptname="newopt_${optname}" - echo "${optname}='${!noptname}'" >>"${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" - fi - done + bash ./migrate-config.sh "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" echo "A previous version of ARK Server Tools was detected in your system, your old configuration was not overwritten. You may need to manually update it." echo "A copy of the new configuration file was included in /etc/arkmanager. Make sure to review any changes and update your config accordingly!" diff --git a/tools/migrate-config.sh b/tools/migrate-config.sh new file mode 100755 index 0000000..e7bd017 --- /dev/null +++ b/tools/migrate-config.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +configfile="$1" +newopts=( arkbackupdir arkautorestartfile install_bindir install_libexecdir install_datadir mod_appid ) +newopt_steamcmd_appinfocache="${PREFIX}/Steam/appcache/appinfo.vdf" +newopt_arkbackupdir="${PREFIX}/ARK-Backups" +newopt_arkautorestartfile="ShooterGame/Saved/.autorestart" +newopt_install_bindir="${BINDIR}" +newopt_install_libexecdir="${LIBEXECDIR}" +newopt_install_datadir="${DATADIR}" +newopt_mod_appid=346110 + +if grep '^\(servermail\|arkstVersion\)=' "${configfile}" >/dev/null 2>&1; then + sed -i '/^\(servermail\|arkstVersion\)=/d' "${configfile}" +fi + +for optname in "${newopts[@]}"; do + if ! grep "^${optname}=" "${configfile}" >/dev/null 2>&1; then + noptname="newopt_${optname}" + echo "${optname}='${!noptname}'" >>"${configfile}" + fi +done +