#!/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 ./jackett ]; then echo "${BOLDRED}ERROR${NC}: Couldn't locate ./jackett - Is the script in the right directory?" exit 1 fi jackettdir="$(pwd)" # 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 <<EOL <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>EnvironmentVariables</key> <dict> <key>PATH</key> <string>/usr/bin:/bin:/usr/sbin:/sbin</string> </dict> <key>KeepAlive</key> <true/> <key>Label</key> <string>org.user.Jackett</string> <key>ProgramArguments</key> <array> <string>${jackettdir}/jackett</string> <string>--NoRestart</string> </array> <key>RunAtLoad</key> <true/> <key>WorkingDirectory</key> <string>${jackettdir}</string> </dict> </plist> 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: Jackett directory: \`${jackettdir}\` EOL fi