From 4d8b55a92fd171e5ad852b998bd891a4176540e9 Mon Sep 17 00:00:00 2001 From: flightlevel Date: Tue, 21 Aug 2018 20:52:12 +1000 Subject: [PATCH] Replace install_service_macos https://github.com/Jackett/Jackett/issues/3638 --- install_service_macos | 77 ++++++++++++++++++++++++ src/Jackett.Server/Jackett.Server.csproj | 3 + 2 files changed, 80 insertions(+) create mode 100644 install_service_macos diff --git a/install_service_macos b/install_service_macos new file mode 100644 index 000000000..cf565d3e1 --- /dev/null +++ b/install_service_macos @@ -0,0 +1,77 @@ +#!/bin/bash + +#Setting up colors +BOLDRED="$(printf '\033[1;31m')" +BOLDGREEN="$(printf '\033[1;32m')" +NC="$(printf '\033[0m')" # No Color + +# Stop and unload the service if it's running +launchctl remove org.user.Jackett + +# Move working directory to Jackett's +cd "$(dirname "$0")" + +# Check if we're running from Jackett's directory +if [ ! -f ./JackettConsole.exe ]; then +echo "${BOLDRED}ERROR${NC}: Couldn't locate JackettConsole.exe. Is the script in the right directory?" + exit 1 +fi +jackettdir="$(pwd)" + +# Check if mono is installed +command -v mono >/dev/null 2>&1 || { echo >&2 "${BOLDRED}ERROR${NC}: Jackett requires Mono but it's not installed. Aborting."; exit 1; } +monodir="$(dirname $(command -v mono))" + +# Check that no other service called Jackett is already running +if [[ $(launchctl list | grep org.user.Jackett) ]]; then + echo "${BOLDRED}ERROR${NC}: Jackett already seems to be running as a service. Please stop it before running this script again." + exit 1 +fi + +# Write the plist to LaunchAgents +mkdir -p ~/Library/LaunchAgents/ +cat >~/Library/LaunchAgents/org.user.Jackett.plist < + + + + EnvironmentVariables + + PATH + /usr/bin:/bin:/usr/sbin:/sbin:${monodir} + + KeepAlive + + Label + org.user.Jackett + ProgramArguments + + ${monodir}/mono + --debug + JackettConsole.exe + --NoRestart + + RunAtLoad + + WorkingDirectory + ${jackettdir} + + + +EOL + +# Run the agent +launchctl load ~/Library/LaunchAgents/org.user.Jackett.plist + +# Check that it's running +if [[ $(launchctl list | grep org.user.Jackett) ]]; then +echo "${BOLDGREEN}Agent successfully installed and launched!${NC}" +else + cat << EOL +${BOLDRED}ERROR${NC}: Could not launch agent. The installation might have failed. +Please open an issue on https://github.com/Jackett/Jackett/issues and paste following information: +Mono directory: \`${monodir}\` +Jackett directory: \`${jackettdir}\` + +EOL +fi diff --git a/src/Jackett.Server/Jackett.Server.csproj b/src/Jackett.Server/Jackett.Server.csproj index 75e172ecd..62281c8d7 100644 --- a/src/Jackett.Server/Jackett.Server.csproj +++ b/src/Jackett.Server/Jackett.Server.csproj @@ -53,6 +53,9 @@ PreserveNewest + + PreserveNewest +