mirror of
https://github.com/allaunthefox/Research-Stack.git
synced 2026-07-31 03:05:21 +00:00
58 lines
2 KiB
Bash
Executable file
58 lines
2 KiB
Bash
Executable file
#!/bin/bash
|
|
# Citation Accessibility Verification
|
|
# Checks HTTP/HTTPS URLs in markdown files for accessibility
|
|
|
|
set -e
|
|
|
|
REPO_ROOT="/home/allaun/Research Stack"
|
|
REPORT_DIR="$REPO_ROOT/docs/provenance"
|
|
REPORT_FILE="$REPORT_DIR/citation_accessibility_report_$(date +%Y%m%d).txt"
|
|
|
|
mkdir -p "$REPORT_DIR"
|
|
|
|
echo "Citation Accessibility Verification Report" > "$REPORT_FILE"
|
|
echo "Date: $(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> "$REPORT_FILE"
|
|
echo "=========================================" >> "$REPORT_FILE"
|
|
echo "" >> "$REPORT_FILE"
|
|
|
|
# Find all HTTP/HTTPS URLs in markdown files
|
|
echo "Extracting URLs from markdown files..." >> "$REPORT_FILE"
|
|
echo "" >> "$REPORT_FILE"
|
|
|
|
# Extract URLs from docs directory
|
|
urls=$(grep -r -h -o 'https\?://[^ )"]*' "$REPO_ROOT/docs"/*.md 2>/dev/null | sort -u)
|
|
|
|
if [ -z "$urls" ]; then
|
|
echo "No URLs found in markdown files." >> "$REPORT_FILE"
|
|
else
|
|
echo "Found URLs:" >> "$REPORT_FILE"
|
|
echo "$urls" >> "$REPORT_FILE"
|
|
echo "" >> "$REPORT_FILE"
|
|
|
|
echo "Checking accessibility..." >> "$REPORT_FILE"
|
|
echo "" >> "$REPORT_FILE"
|
|
|
|
for url in $urls; do
|
|
echo "Checking: $url" >> "$REPORT_FILE"
|
|
# Use curl with timeout to check if URL is accessible
|
|
# -s: silent mode
|
|
# -o /dev/null: discard output
|
|
# -w "%{http_code}": output HTTP status code
|
|
# -L: follow redirects
|
|
# --max-time 10: timeout after 10 seconds
|
|
status=$(curl -s -o /dev/null -w "%{http_code}" -L --max-time 10 "$url" 2>/dev/null || echo "000")
|
|
|
|
if [ "$status" = "200" ] || [ "$status" = "301" ] || [ "$status" = "302" ]; then
|
|
echo " Status: $status - ACCESSIBLE" >> "$REPORT_FILE"
|
|
else
|
|
echo " Status: $status - NOT ACCESSIBLE" >> "$REPORT_FILE"
|
|
fi
|
|
echo "" >> "$REPORT_FILE"
|
|
done
|
|
fi
|
|
|
|
echo "=========================================" >> "$REPORT_FILE"
|
|
echo "Verification complete." >> "$REPORT_FILE"
|
|
echo "Report saved to: $REPORT_FILE" >> "$REPORT_FILE"
|
|
|
|
cat "$REPORT_FILE"
|