diff --git a/tools/install.sh b/tools/install.sh index ceaae2d..d4e31d3 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -142,6 +142,16 @@ if [ "$userinstall" == "yes" ]; then cp arkmanager "${INSTALL_ROOT}${BINDIR}/arkmanager" chmod +x "${INSTALL_ROOT}${BINDIR}/arkmanager" + # Create a folder in ~/.local/share to store arkmanager support files + mkdir -p "${INSTALL_ROOT}${DATADIR}" + + # Copy the uninstall script to ~/.local/share/arkmanager + cp uninstall-user.sh "${INSTALL_ROOT}${DATADIR}/arkmanager-uninstall.sh" + chmod +x "${INSTALL_ROOT}${DATADIR}/arkmanager-uninstall.sh" + sed -i -e "s|^BINDIR=.*|BINDIR=\"${BINDIR}\"|" \ + -e "s|^DATADIR=.*|DATADIR=\"${DATADIR}\"|" \ + "${INSTALL_ROOT}${DATADIR}/arkmanager-uninstall.sh" + # Create a folder in ~/logs to let Ark tools write its own log files mkdir -p "${INSTALL_ROOT}${PREFIX}/logs/arktools" @@ -169,6 +179,15 @@ else cp arkmanager "${INSTALL_ROOT}${BINDIR}/arkmanager" chmod +x "${INSTALL_ROOT}${BINDIR}/arkmanager" + # Copy the uninstall script to ~/.local/share/arkmanager + mkdir -p "${INSTALL_ROOT}${LIBEXECDIR}" + cp uninstall.sh "${INSTALL_ROOT}${DATADIR}/arkmanager-uninstall.sh" + chmod +x "${INSTALL_ROOT}${DATADIR}/arkmanager-uninstall.sh" + sed -i -e "s|^BINDIR=.*|BINDIR=\"${BINDIR}\"|" \ + -e "s|^LIBEXECDIR=.*|LIBEXECDIR=\"${LIBEXECDIR}\"|" \ + -e "s|^DATADIR=.*|DATADIR=\"${DATADIR}\"|" \ + "${INSTALL_ROOT}${DATADIR}/arkmanager-uninstall.sh" + # Copy arkdaemon to /etc/init.d ,set permissions and add it to boot if [ -f /lib/lsb/init-functions ]; then # on debian 8, sysvinit and systemd are present. If systemd is available we use it instead of sysvinit diff --git a/tools/uninstall-user.sh b/tools/uninstall-user.sh new file mode 100644 index 0000000..77e7221 --- /dev/null +++ b/tools/uninstall-user.sh @@ -0,0 +1,14 @@ +#!/bin/bash +# +# uninstall-user.sh + +BINDIR="/home/steam/bin" +DATADIR="/home/steam/.local/share/arkmanager" + +for f in "${BINDIR}/arkmanager" \ + "${DATADIR}/uninstall.sh" +do + if [ -f "$f" ]; then + rm "$f" + fi +done diff --git a/tools/uninstall.sh b/tools/uninstall.sh new file mode 100644 index 0000000..e4f20b5 --- /dev/null +++ b/tools/uninstall.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# +# uninstall.sh + +BINDIR="/usr/bin" +DATADIR="/usr/share/arkmanager" +LIBEXECDIR="/usr/libexec/arkmanager" +INITSCRIPT= + +if [ -f "/etc/rc.d/init.d/arkmanager" ]; then + INITSCRIPT="/etc/rc.d/init.d/arkmanager" + if [ -f "/etc/rc.d/init.d/functions" ]; then + chkconfig arkmanager off + fi +elif [ -f "/etc/init.d/arkmanager" ]; then + INITSCRIPT="/etc/init.d/arkmanager" + if [ -f "/lib/lsb/init-functions" ]; then + update-rc.d -f arkmanager remove + elif [ -f "/sbin/runscript" ]; then + rc-update del arkmanager default + fi +elif [ -f "/etc/systemd/system/arkmanager.service" ]; then + INITSCRIPT="/etc/systemd/system/arkmanager.service" + systemctl disable arkmanager.service +fi + +if [ -n "$INITSCRIPT" ]; then + for f in "${INITSCRIPT}" \ + "${BINDIR}/arkmanager" \ + "${LIBEXECDIR}/arkmanager.init" \ + "${LIBEXECDIR}/arkmanager-uninstall.sh" + do + if [ -f "$f" ]; then + rm "$f" + fi + done +fi