- Added generated index files and report directories to .gitignore to prevent unnecessary tracking of transient files. - Updated README links to reflect new documentation paths for better navigation. - Improved documentation organization by ensuring all links point to the correct locations, enhancing user experience and accessibility.
149 lines
4.3 KiB
Bash
Executable File
149 lines
4.3 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Archive Old Status Files
|
|
# Moves old status and completion files to archive directories.
|
|
#
|
|
# Usage: ./scripts/cleanup-archive-old-status.sh [options]
|
|
# Options:
|
|
# --dry-run Show what would be moved without actually moving
|
|
# --help Show this help message
|
|
#
|
|
|
|
set -euo pipefail
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
DRY_RUN=false
|
|
|
|
# Parse arguments
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
--dry-run)
|
|
DRY_RUN=true
|
|
shift
|
|
;;
|
|
--help)
|
|
echo "Usage: $0 [options]"
|
|
echo "Options:"
|
|
echo " --dry-run Show what would be moved without actually moving"
|
|
echo " --help Show this help message"
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo -e "${RED}Unknown option: $1${NC}"
|
|
echo "Use --help for usage information"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
FILES_MOVED=0
|
|
|
|
# Function to move file to archive
|
|
move_to_archive() {
|
|
local file="$1"
|
|
local archive_dir="$2"
|
|
local reason="$3"
|
|
|
|
if [[ ! -f "$file" ]]; then
|
|
echo -e "${YELLOW} ⚠ Skipping (not found): $file${NC}"
|
|
return
|
|
fi
|
|
|
|
local filename=$(basename "$file")
|
|
local dest="$archive_dir/$filename"
|
|
|
|
if [[ "$DRY_RUN" == true ]]; then
|
|
echo -e "${YELLOW} [DRY RUN] Would move: $file${NC}"
|
|
echo -e " To: $dest"
|
|
echo -e " Reason: $reason"
|
|
((FILES_MOVED++))
|
|
return
|
|
fi
|
|
|
|
mkdir -p "$archive_dir"
|
|
|
|
# Check if destination already exists
|
|
if [[ -f "$dest" ]]; then
|
|
echo -e "${YELLOW} ⚠ Destination exists, skipping: $file${NC}"
|
|
return
|
|
fi
|
|
|
|
mv "$file" "$dest"
|
|
echo -e "${GREEN} ✓ Moved: $file${NC}"
|
|
echo -e " To: $dest"
|
|
((FILES_MOVED++))
|
|
}
|
|
|
|
echo "=========================================="
|
|
echo "Archive Old Status Files"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
if [[ "$DRY_RUN" == true ]]; then
|
|
echo -e "${YELLOW}DRY RUN MODE - No files will be moved${NC}"
|
|
echo ""
|
|
fi
|
|
|
|
echo "Archiving old status files..."
|
|
echo ""
|
|
|
|
# Files in docs/proxmox/status/ to archive
|
|
proxmox_status_files=(
|
|
"docs/proxmox/status/COMPLETE_STATUS.md:docs/proxmox/archive:Old status file"
|
|
"docs/proxmox/status/COMPLETE_STATUS_FINAL.md:docs/proxmox/archive:Old status file"
|
|
"docs/proxmox/status/COMPLETE_STATUS_REPORT.md:docs/proxmox/archive:Old status file"
|
|
"docs/proxmox/status/COMPLETE_SUMMARY.md:docs/proxmox/archive:Old status file"
|
|
"docs/proxmox/status/COMPLETION_SUMMARY.md:docs/proxmox/archive:Old status file"
|
|
"docs/proxmox/status/FINAL_STATUS.md:docs/proxmox/archive:Old status file"
|
|
"docs/proxmox/status/FINAL_STATUS_UPDATE.md:docs/proxmox/archive:Old status file"
|
|
"docs/proxmox/status/NEXT_STEPS_COMPLETED.md:docs/proxmox/archive:Old status file"
|
|
"docs/proxmox/status/TASK_COMPLETION_SUMMARY.md:docs/proxmox/archive:Old status file"
|
|
)
|
|
|
|
for entry in "${proxmox_status_files[@]}"; do
|
|
IFS=':' read -r file archive_dir reason <<< "$entry"
|
|
move_to_archive "$file" "$archive_dir" "$reason"
|
|
done
|
|
|
|
# Files in docs/status/implementation/ to archive
|
|
status_impl_files=(
|
|
"docs/status/implementation/ALL_TASKS_COMPLETE.md:docs/archive/status:Old status file"
|
|
"docs/status/implementation/IMPLEMENTATION_COMPLETE.md:docs/archive/status:Old status file"
|
|
"docs/status/implementation/NEXT_STEPS_COMPLETE.md:docs/archive/status:Old status file"
|
|
"docs/status/implementation/NEXT_STEPS_FINAL_STATUS.md:docs/archive/status:Old status file"
|
|
)
|
|
|
|
for entry in "${status_impl_files[@]}"; do
|
|
IFS=':' read -r file archive_dir reason <<< "$entry"
|
|
move_to_archive "$file" "$archive_dir" "$reason"
|
|
done
|
|
|
|
# Files in docs/status/ to archive
|
|
status_files=(
|
|
"docs/status/NEXT_STEPS_COMPLETION.md:docs/archive/status:Old status file"
|
|
)
|
|
|
|
for entry in "${status_files[@]}"; do
|
|
IFS=':' read -r file archive_dir reason <<< "$entry"
|
|
move_to_archive "$file" "$archive_dir" "$reason"
|
|
done
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "Summary"
|
|
echo "=========================================="
|
|
echo -e "${GREEN}Files moved: $FILES_MOVED${NC}"
|
|
echo ""
|
|
|
|
if [[ "$DRY_RUN" == true ]]; then
|
|
echo -e "${YELLOW}This was a dry run. Run without --dry-run to actually move files.${NC}"
|
|
fi
|
|
|
|
echo "Done!"
|
|
|