Files
proxmox/scripts/prune-old-documentation.sh

136 lines
3.7 KiB
Bash
Executable File

#!/usr/bin/env bash
# Safely prune old/obsolete documentation and content
# Creates a backup before deletion and provides detailed logging
set -euo pipefail
PROJECT_ROOT="/home/intlc/projects/proxmox"
cd "$PROJECT_ROOT"
# Create backup directory
BACKUP_DIR="$PROJECT_ROOT/backup-old-docs-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BACKUP_DIR"
echo "=== Pruning Old Documentation ==="
echo "Backup directory: $BACKUP_DIR"
echo ""
# List of historical/obsolete documents to remove (with confirmation)
OBSOLETE_DOCS=(
# Historical VMID migration docs (superseded by current ranges)
"docs/HISTORICAL_VMID_REFERENCES.md"
"docs/VMID_UPDATE_COMPLETE.md"
"docs/VMID_REFERENCE_AUDIT.md"
"docs/VMID_ALLOCATION.md" # Superseded by VMID_ALLOCATION_FINAL.md
# Old deployment status/completion reports
"docs/DEPLOYMENT_STATUS.md"
"docs/DEPLOYMENT_REVIEW_COMPLETE.md"
"docs/DEPLOYMENT_REVIEW.md"
"docs/DEPLOYMENT_TIME_ESTIMATE.md"
"docs/DEPLOYMENT_TIME_ESTIMATE_BESU_ONLY.md"
"docs/DEPLOYMENT_VALIDATION_REPORT.md"
"docs/DEPLOYED_VMIDS_LIST.md"
"docs/DEPLOYMENT_OPTIMIZATION_COMPLETE.md"
"docs/DEPLOYMENT_OPTIMIZATION_RECOMMENDATIONS.md"
"docs/DEPLOYMENT_RECOMMENDATIONS_STATUS.md"
"docs/DEPLOYMENT_CONFIGURATION_VERIFICATION.md"
# Old status/completion reports
"docs/NEXT_STEPS_COMPREHENSIVE.md"
"docs/NEXT_STEPS_COMPLETE.md"
"docs/NEXT_STEPS_SUMMARY.md"
"docs/COMPLETION_REPORT.md"
"docs/FIXES_APPLIED.md"
"docs/REVIEW_FIXES_APPLIED.md"
"docs/MINOR_OBSERVATIONS_FIXED.md"
"docs/NON_CRITICAL_FIXES_COMPLETE.md"
"docs/QUICK_WINS_COMPLETED.md"
"docs/TASK_COMPLETION_SUMMARY.md"
"docs/IMPLEMENTATION_COMPLETE.md"
"docs/PREREQUISITES_COMPLETE.md"
"docs/SETUP_COMPLETE.md"
"docs/SETUP_COMPLETE_FINAL.md"
"docs/SETUP_STATUS.md"
"docs/VALIDATION_STATUS.md"
"docs/CONFIGURATION_ALIGNMENT.md"
# Old review documents
"docs/REVIEW_INCONSISTENCIES_GAPS.md"
"docs/REVIEW_SUMMARY.md"
"docs/COMPREHENSIVE_REVIEW.md"
"docs/FINAL_REVIEW.md"
"docs/DETAILED_ISSUES_REVIEW.md"
"docs/RECOMMENDATIONS_OVERVIEW.md"
# OS template analysis (historical)
"docs/OS_TEMPLATE_CHANGE.md"
"docs/UBUNTU_DEBIAN_ANALYSIS.md"
"docs/OS_TEMPLATE_ANALYSIS.md"
# Old DHCP documentation (containers now use static IPs)
"docs/DHCP_IP_ADDRESSES.md"
)
echo "Files to be removed (will be backed up first):"
echo ""
for doc in "${OBSOLETE_DOCS[@]}"; do
if [[ -f "$doc" ]]; then
echo " - $doc"
fi
done
echo ""
echo "⚠️ WARNING: This will remove the files listed above"
echo " All files will be backed up to: $BACKUP_DIR"
echo ""
read -p "Continue with pruning? (yes/no): " -r
if [[ ! $REPLY =~ ^[Yy][Ee][Ss]$ ]]; then
echo "Pruning cancelled"
exit 0
fi
echo ""
echo "Creating backups and removing files..."
removed_count=0
skipped_count=0
for doc in "${OBSOLETE_DOCS[@]}"; do
if [[ -f "$doc" ]]; then
# Create backup
backup_path="$BACKUP_DIR/$doc"
mkdir -p "$(dirname "$backup_path")"
cp "$doc" "$backup_path"
# Remove original
rm "$doc"
echo " ✅ Removed: $doc (backed up)"
removed_count=$((removed_count + 1))
else
skipped_count=$((skipped_count + 1))
fi
done
echo ""
echo "=== Pruning Complete ==="
echo " Files removed: $removed_count"
echo " Files skipped (not found): $skipped_count"
echo " Backup location: $BACKUP_DIR"
echo ""
# Create index of removed files
cat > "$BACKUP_DIR/REMOVED_FILES_INDEX.txt" <<EOF
Removed Documentation Files
Generated: $(date)
Files removed:
$(for doc in "${OBSOLETE_DOCS[@]}"; do echo " - $doc"; done)
Total removed: $removed_count
EOF
echo "Backup index created: $BACKUP_DIR/REMOVED_FILES_INDEX.txt"