#! /usr/bin/env bash # Danbooru Bot, an image posting bot for Pleroma # Copyright (C) 2022 Anon <@Anon@yandere.cc> # # 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 INDEX="$(expr `grep "^Profile" "$LOG" | cut -d ' ' -f5 | tail -n 1` + 1)" STATE="$(grep "^State" "$LOG" | cut -d ' ' -f2 | tail -n 1 | awk -F ',' "{sub(\$${INDEX},\$${INDEX}+1,\$${INDEX})}7" | tr ' ' ',')" "$ENTRY" -i "$INDEX" -s "$STATE" fi RETURN_CODE="$?" # Cleanup cd - > /dev/null exit "$RETURN_CODE"