#!/bin/bash # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # This script will set up a basic systemd service and timer for DiscoRSS # You can optionally edit the entries here before running it, or you can # use systemctl --user edit --full discorss.service or discorss.timer # after installing them. printf "\e[1;34mDisco\e[1;38;5;208mRSS\e[0m Install Helper Script\n\n" workingDir=$(pwd) cat << EOF > discorss.service [Unit] Description=Discord RSS feeder Wants=discorss.timer [Service] Type=oneshot TimeoutStartSec=120 ExecStart=$workingDir/discorss.py [Install] WantedBy=default.target EOF cat << EOF > discorss.timer [Unit] Description=Timer for DiscoRSS Requires=discorss.service [Timer] Unit=discorss.service OnCalendar=*:0/5:00 AccuracySec=1s [Install] WantedBy=timers.target EOF mkdir -p ~/.config/systemd/user/ cp discorss.service ~/.config/systemd/user/ cp discorss.timer ~/.config/systemd/user/ rm -f discorss.service rm -f discorss.timer systemctl --user daemon-reload printf "Would you like a basic example config created for you? [y/n]: " read answer1 if [[ "$answer1" =~ ^([yY])$ ]]; then mkdir -p -v ~/.config/discorss cat << EOF > ~/.config/discorss/discorss.conf { "feeds": [ { "name": "Phoronix", "siteurl": "https://www.phoronix.com/", "url": "http://www.phoronix.com/rss.php", "webhook": "PASTE WEBHOOK URL HERE", "offset": 0 } ] } EOF printf "\nMake sure to edit \e[1;34m~/.config/discorss/discorss.conf\e[0m and add in your custom feeds and webhook URLS! The script will just error out if you don't do this." else printf "\nMake sure to create a config at \e[1;34m~/.config/discorss/discorss.conf\e[0m and follow the pattern shown in the README." fi printf "\nWould you like to have the timer enabled and started now? [y/n]: " read answer if [[ "$answer" =~ ^([yY])$ ]]; then systemctl --user enable --now discorss.timer printf "\ndiscorss.timer enabled and started. \e[1;31mDon't enable or start discorss.service\e[0m -- the timer does this automatically." else printf "\nDon't forget to run \e[1;32msystemctl --user enable --now discorss.timer\e[0m when you are ready! \e[1;31mDon't enable or start discorss.service\e[0m -- the timer does this automatically." fi printf "\n\nYou should be almost ready to go! Double-check your config files, and check \e[1;32msystemctl --user list-timers\e[0m once the discorss.timer is enabled to see when it will fire next. The default is every 5 minutes." printf "\nRemember, if you need help or encounter any bugs, contact me via the issues tracker on the git repository where you got this from!"