!/usr/bin/env bash
#########################################################
Config
######################################################### FIX_SCRIPT_LOCATION="/usr/bin/xxpritunl-fix"
#########################################################
Helpers
######################################################### function check_root() { if [ "$EUID" -ne 0 ]; then echo "This script must be run as root!" exit 1 fi }
function add_cron() { if grep -q "bash ${FIX_SCRIPT_LOCATION}" /etc/crontab; then echo "Cron job already exists. Skipping..." else echo "Adding cron job..." echo "/5 bash ${FIX_SCRIPT_LOCATION}" >> /etc/crontab fi }
function write_script() { cat <<"EOF" > "$FIX_SCRIPT_LOCATION"
!/usr/bin/env bash
function verify_curl() { if [[ "$2" == "$1" ]]; then echo "Site is up" return 0 else echo "Site is down. Reissuing SSL and restarting service..." pritunl reset-ssl-cert systemctl restart pritunl return 1 fi }
function verify_service() { local _service="$1" echo "Checking if service $_service is running..." if [ "$(systemctl is-active "$_service")" == "active" ]; then echo "Service $_service is running" return 0 else echo "Service $_service is not running. Restarting service..." systemctl restart "$_service" return 1 fi }
verify_service "pritunl" verify_service "mongod" verify_curl "login-backdrop" "$(curl -s -k -L https://localhost)" echo "All done." exit 0 EOF }
#########################################################
Main
######################################################### check_root write_script add_cron