Files
proxmox/scripts/organize-docs-directory.sh
defiQUG b3a8fe4496
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
chore: sync all changes to Gitea
- Config, docs, scripts, and backup manifests
- Submodule refs unchanged (m = modified content in submodules)

Made-with: Cursor
2026-03-02 11:37:34 -08:00

205 lines
6.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Organize Documentation Directory Files
# Moves files from docs/ root to appropriate directories
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
cd "$PROJECT_ROOT"
# Colors
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
RED='\033[0;31m'
NC='\033[0m'
# Dry-run mode (default: true)
DRY_RUN="${1:---dry-run}"
# Log file
LOG_FILE="docs/DOCS_ORGANIZATION_$(date +%Y%m%d_%H%M%S).log"
MOVED_COUNT=0
SKIPPED_COUNT=0
ERROR_COUNT=0
log() {
echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1" | tee -a "$LOG_FILE"
}
success() {
echo -e "${GREEN}[OK]${NC} $1" | tee -a "$LOG_FILE"
}
warn() {
echo -e "${YELLOW}[WARN]${NC} $1" | tee -a "$LOG_FILE"
}
error() {
echo -e "${RED}[ERROR]${NC} $1" | tee -a "$LOG_FILE"
ERROR_COUNT=$((ERROR_COUNT + 1))
}
move_file() {
local source="$1"
local dest="$2"
local description="${3:-}"
if [ ! -f "$source" ]; then
warn "File not found: $source"
SKIPPED_COUNT=$((SKIPPED_COUNT + 1))
return
fi
# Create destination directory if it doesn't exist
local dest_dir=$(dirname "$dest")
if [ "$DRY_RUN" != "--dry-run" ]; then
mkdir -p "$dest_dir"
fi
# Check if destination already exists
if [ -f "$dest" ]; then
warn "Destination already exists: $dest (skipping $source)"
SKIPPED_COUNT=$((SKIPPED_COUNT + 1))
return
fi
if [ "$DRY_RUN" == "--dry-run" ]; then
log "Would move: $source$dest $description"
else
if mv "$source" "$dest" 2>>"$LOG_FILE"; then
success "Moved: $source$dest $description"
MOVED_COUNT=$((MOVED_COUNT + 1))
else
error "Failed to move: $source$dest"
fi
fi
}
# Create necessary directories
create_directories() {
if [ "$DRY_RUN" != "--dry-run" ]; then
mkdir -p docs/00-meta
mkdir -p docs/archive/reports
mkdir -p docs/archive/issues
mkdir -p docs/bridge/contracts
mkdir -p docs/04-configuration/metamask
mkdir -p docs/scripts
fi
}
log "╔══════════════════════════════════════════════════════════╗"
log "║ Documentation Directory Files Organization ║"
log "╚══════════════════════════════════════════════════════════╝"
log ""
log "Mode: $DRY_RUN"
log "Project Root: $PROJECT_ROOT"
log "Log File: $LOG_FILE"
log ""
create_directories
log "=== Moving Documentation Meta Files to docs/00-meta/ ==="
for file in \
CONTRIBUTOR_GUIDELINES.md \
DOCUMENTATION_ENHANCEMENTS_RECOMMENDATIONS.md \
DOCUMENTATION_FIXES_COMPLETE.md \
DOCUMENTATION_QUALITY_REVIEW.md \
DOCUMENTATION_RELATIONSHIP_MAP.md \
DOCUMENTATION_REORGANIZATION_COMPLETE.md \
DOCUMENTATION_REVIEW.md \
DOCUMENTATION_STYLE_GUIDE.md \
DOCUMENTATION_UPGRADE_SUMMARY.md \
MARKDOWN_FILE_MAINTENANCE_GUIDE.md; do
[ -f "docs/$file" ] || continue
move_file "docs/$file" "docs/00-meta/$file" "(documentation meta)"
done
log ""
log "=== Moving Reports to docs/archive/reports/ ==="
for file in \
PROXMOX_CLUSTER_STORAGE_STATUS_REPORT.md \
PROXMOX_SSL_CERTIFICATE_FIX.md \
PROXMOX_SSL_FIX_VERIFIED.md \
SSL_CERTIFICATE_ERROR_596_FIX.md \
SSL_FIX_FOR_EACH_HOST.md; do
[ -f "docs/$file" ] || continue
move_file "docs/$file" "docs/archive/reports/$file" "(report)"
done
log ""
log "=== Moving Issue Tracking to docs/archive/issues/ ==="
for file in \
OUTSTANDING_ISSUES_RESOLUTION_GUIDE.md \
OUTSTANDING_ISSUES_SUMMARY.md; do
[ -f "docs/$file" ] || continue
move_file "docs/$file" "docs/archive/issues/$file" "(issue tracking)"
done
log ""
log "=== Moving Solidity Files to docs/bridge/contracts/ ==="
for file in \
CCIPWETH9Bridge_flattened.sol \
CCIPWETH9Bridge_standard_json.json \
CCIPWETH9Bridge_standard_json_generated.json; do
[ -f "docs/$file" ] || continue
move_file "docs/$file" "docs/bridge/contracts/$file" "(Solidity contract)"
done
log ""
log "=== Moving Metamask Config Files to docs/04-configuration/metamask/ ==="
for file in \
METAMASK_NETWORK_CONFIG.json \
METAMASK_TOKEN_LIST.json \
METAMASK_TOKEN_LIST.tokenlist.json; do
[ -f "docs/$file" ] || continue
move_file "docs/$file" "docs/04-configuration/metamask/$file" "(Metamask config)"
done
log ""
log "=== Moving Scripts to docs/scripts/ ==="
for file in \
organize-standalone-files.sh \
organize_files.py; do
[ -f "docs/$file" ] || continue
move_file "docs/$file" "docs/scripts/$file" "(script)"
done
log ""
log "=== Files Staying in Root ==="
log "✅ README.md - Main documentation index"
log "✅ MASTER_INDEX.md - Master index"
log "✅ SEARCH_GUIDE.md - Search guide (useful in root)"
log ""
log "╔══════════════════════════════════════════════════════════╗"
log "║ Organization Complete ║"
log "╚══════════════════════════════════════════════════════════╝"
log ""
log "Summary:"
log " Files Moved: $MOVED_COUNT"
log " Files Skipped: $SKIPPED_COUNT"
log " Errors: $ERROR_COUNT"
log ""
if [ "$DRY_RUN" == "--dry-run" ]; then
log "⚠️ DRY RUN MODE - No files were actually moved"
log ""
log "To execute the moves, run:"
log " $0 --execute"
else
log "✅ Files have been moved successfully"
log "Log file: $LOG_FILE"
# Move log file to logs directory
if [ -f "$LOG_FILE" ]; then
mkdir -p logs
mv "$LOG_FILE" "logs/"
log "Log file moved to: logs/$(basename "$LOG_FILE")"
fi
fi
log ""
exit 0