#! /usr/bin/env bash # Dynamic Cloudflare DNS, a way to automate DNS changes for Cloudflare # Copyright (C) 2022 # # 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 . # Add the following to your crontab to automate this script # EDITOR=nvim crontab -e # */2 * * * * /absolute/path/to/run.sh >> "${HOME}/cron/DynamicCloudflareDNS.log" 2>&1 # Get the runtime path of the bot ABS_PATH="$(readlink -f "$0")" RUN_DIR="$(dirname "$ABS_PATH")" # Relative paths to the virtual environment and main.py VENV='./venv/bin/activate' ENTRY='./src/main.py' # cd into the bot's root path, set up the virtual environment, and run cd "$RUN_DIR" [ ! -f "$VENV" ] && echo "Virtual environment not found: ${VENV}" && cd - > /dev/null && exit 1 source "$VENV" "$ENTRY" "$@" # Cleanup deactivate cd - > /dev/null