Files
dbis_docs/scripts/setup_link_verification_cron.sh

89 lines
3.1 KiB
Bash
Executable File

#!/bin/bash
# Setup Automated Link Verification Cron Jobs
# This script sets up automated link verification using cron
set -e
# Colors for output
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
SCRIPT_DIR="${PROJECT_ROOT}/scripts"
LOG_DIR="${PROJECT_ROOT}/logs"
echo "=========================================="
echo "Link Verification Cron Job Setup"
echo "=========================================="
echo ""
# Create logs directory if it doesn't exist
if [ ! -d "$LOG_DIR" ]; then
echo "Creating logs directory: $LOG_DIR"
mkdir -p "$LOG_DIR"
fi
# Make scripts executable
echo "Making verification scripts executable..."
chmod +x "${SCRIPT_DIR}/verify_cross_references.sh"
chmod +x "${SCRIPT_DIR}/verify_cross_references_simple.sh"
if [ -f "${SCRIPT_DIR}/verify_links.py" ]; then
chmod +x "${SCRIPT_DIR}/verify_links.py"
fi
# Create cron job entries
echo ""
echo "Cron job configuration:"
echo "----------------------"
echo ""
echo "Daily Verification (2 AM):"
echo "0 2 * * * cd ${PROJECT_ROOT} && ${SCRIPT_DIR}/verify_cross_references_simple.sh >> ${LOG_DIR}/daily_verification_\$(date +\\%Y-\\%m-\\%d).log 2>&1"
echo ""
echo "Weekly Comprehensive Verification (Sunday 3 AM):"
echo "0 3 * * 0 cd ${PROJECT_ROOT} && ${SCRIPT_DIR}/verify_cross_references.sh >> ${LOG_DIR}/weekly_verification_\$(date +\\%Y-\\%m-\\%d).log 2>&1"
echo ""
# Ask user if they want to install cron jobs
read -p "Do you want to install these cron jobs? (y/n): " -n 1 -r
echo ""
if [[ $REPLY =~ ^[Yy]$ ]]; then
# Create temporary cron file
CRON_TEMP=$(mktemp)
# Get existing crontab
crontab -l > "$CRON_TEMP" 2>/dev/null || true
# Add new cron jobs
echo "" >> "$CRON_TEMP"
echo "# DBIS Documentation Link Verification" >> "$CRON_TEMP"
echo "# Daily verification at 2 AM" >> "$CRON_TEMP"
echo "0 2 * * * cd ${PROJECT_ROOT} && ${SCRIPT_DIR}/verify_cross_references_simple.sh >> ${LOG_DIR}/daily_verification_\$(date +\\%Y-\\%m-\\%d).log 2>&1" >> "$CRON_TEMP"
echo "" >> "$CRON_TEMP"
echo "# Weekly comprehensive verification on Sunday at 3 AM" >> "$CRON_TEMP"
echo "0 3 * * 0 cd ${PROJECT_ROOT} && ${SCRIPT_DIR}/verify_cross_references.sh >> ${LOG_DIR}/weekly_verification_\$(date +\\%Y-\\%m-\\%d).log 2>&1" >> "$CRON_TEMP"
# Install new crontab
crontab "$CRON_TEMP"
rm "$CRON_TEMP"
echo -e "${GREEN}✓ Cron jobs installed successfully!${NC}"
echo ""
echo "To view your cron jobs, run: crontab -l"
echo "To remove these cron jobs, edit: crontab -e"
else
echo -e "${YELLOW}Cron jobs not installed.${NC}"
echo ""
echo "To install manually, add these lines to your crontab (crontab -e):"
echo ""
echo "0 2 * * * cd ${PROJECT_ROOT} && ${SCRIPT_DIR}/verify_cross_references_simple.sh >> ${LOG_DIR}/daily_verification_\$(date +\\%Y-\\%m-\\%d).log 2>&1"
echo "0 3 * * 0 cd ${PROJECT_ROOT} && ${SCRIPT_DIR}/verify_cross_references.sh >> ${LOG_DIR}/weekly_verification_\$(date +\\%Y-\\%m-\\%d).log 2>&1"
fi
echo ""
echo "=========================================="
echo "Setup Complete"
echo "=========================================="