89 lines
3.1 KiB
Bash
Executable File
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 "=========================================="
|
|
|