diff --git a/.gitignore b/.gitignore index 5a6d8c7..5e60975 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ !/README.md !/requirements.txt !/run.sh +!/cron.sh diff --git a/cron.sh b/cron.sh new file mode 100755 index 0000000..acdd785 --- /dev/null +++ b/cron.sh @@ -0,0 +1,45 @@ +#! /usr/bin/env bash + +# Danbooru Bot, an image posting bot for Pleroma +# Copyright (C) 2022 Anon +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# WARNING: This script has not been thoroughly tested. Use at your own risk. + +# Get the runtime path of the bot +ABS_PATH="$(readlink -f "$0")" +RUN_DIR="$(dirname "$ABS_PATH")" + +# Relative paths to the entry point and log file +# Make sure the relative path is the same as the absolute path in your cron file +LOG='./log.txt' +ENTRY='./run.sh' + +# cd into the bot's root path, set up the virtual environment, and run +cd "$RUN_DIR" +[ ! -f "$ENTRY" ] && echo "Cannot find entry: ${ENTRY}" && cd - > /dev/null && exit 1 +if [ ! -f "$LOG" ]; then + "$ENTRY" +else + LINE="$(expr `grep "^Profile" "$LOG" | cut -d ' ' -f8 | tail -n 1` + 1)" + "$ENTRY" -l "$LINE" +fi + +RETURN_CODE="$?" + +# Cleanup +cd - > /dev/null + +exit "$RETURN_CODE"