206 lines
5.3 KiB
Markdown
206 lines
5.3 KiB
Markdown
|
|
# Root Directory Files Organization Guide
|
||
|
|
|
||
|
|
**Date**: 2026-01-06
|
||
|
|
**Script**: `scripts/organize-root-files.sh`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📋 Overview
|
||
|
|
|
||
|
|
This script organizes files in the project root directory by moving them to appropriate subdirectories based on file type and purpose.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎯 Purpose
|
||
|
|
|
||
|
|
The root directory should contain only essential configuration files. This script moves:
|
||
|
|
- Log files → `logs/`
|
||
|
|
- CSV inventory files → `reports/inventory/`
|
||
|
|
- Shell scripts → `scripts/`
|
||
|
|
- Python scripts → `scripts/`
|
||
|
|
- JavaScript scripts → `scripts/`
|
||
|
|
- HTML examples → `examples/`
|
||
|
|
- JSON/Text reports → `reports/`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🚀 Usage
|
||
|
|
|
||
|
|
### Dry Run (Preview Changes)
|
||
|
|
```bash
|
||
|
|
./scripts/organize-root-files.sh
|
||
|
|
# or
|
||
|
|
./scripts/organize-root-files.sh --dry-run
|
||
|
|
```
|
||
|
|
|
||
|
|
This will show what files would be moved without actually moving them.
|
||
|
|
|
||
|
|
### Execute (Actually Move Files)
|
||
|
|
```bash
|
||
|
|
./scripts/organize-root-files.sh --execute
|
||
|
|
```
|
||
|
|
|
||
|
|
This will actually move the files to their new locations.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📁 File Organization Rules
|
||
|
|
|
||
|
|
### Log Files → `logs/`
|
||
|
|
- All `*.log` files
|
||
|
|
- Examples: `MARKDOWN_CLEANUP_EXECUTION.log`, `dependency_update_log_*.log`
|
||
|
|
|
||
|
|
### CSV Inventory Files → `reports/inventory/`
|
||
|
|
- All `container_inventory_*.csv` files
|
||
|
|
- Container inventory snapshots
|
||
|
|
|
||
|
|
### Shell Scripts → `scripts/`
|
||
|
|
- All `*.sh` files from root
|
||
|
|
- Examples: `INSTALL_TUNNEL.sh`, `fix-all-tunnels.sh`
|
||
|
|
|
||
|
|
### Python Scripts → `scripts/`
|
||
|
|
- All `*.py` files from root
|
||
|
|
- Examples: `list_vms.py`, `list_vms_with_tunnels.py`
|
||
|
|
|
||
|
|
### JavaScript Scripts → `scripts/`
|
||
|
|
- All `*.js` files from root (except `package.json`, `pnpm-lock.yaml`, `token-list.json`)
|
||
|
|
- Examples: `query-omada-devices.js`, `test-omada-connection.js`
|
||
|
|
|
||
|
|
### HTML Examples → `examples/`
|
||
|
|
- All `*.html` files
|
||
|
|
- Examples: `add-rpc-network.html`, `wallet-connect.html`
|
||
|
|
|
||
|
|
### JSON/Text Reports → `reports/`
|
||
|
|
- `CONTENT_INCONSISTENCIES.json`
|
||
|
|
- `MARKDOWN_ANALYSIS.json`
|
||
|
|
- `REFERENCE_FIXES_REPORT.json`
|
||
|
|
- `CONVERSION_SUMMARY.txt`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Files That Stay in Root
|
||
|
|
|
||
|
|
These files should **NOT** be moved (they're essential configuration):
|
||
|
|
|
||
|
|
- `README.md` - Main project documentation
|
||
|
|
- `PROJECT_STRUCTURE.md` - Project structure documentation
|
||
|
|
- `package.json` - pnpm workspace configuration
|
||
|
|
- `pnpm-workspace.yaml` - Workspace definition
|
||
|
|
- `pnpm-lock.yaml` - Dependency lock file
|
||
|
|
- `.gitignore` - Git ignore rules
|
||
|
|
- `.gitmodules` - Git submodules configuration
|
||
|
|
- `claude_desktop_config.json.example` - Configuration template
|
||
|
|
- `token-list.json` - Token list data file
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📊 Expected Results
|
||
|
|
|
||
|
|
### Before Organization
|
||
|
|
- Root directory: ~52 files
|
||
|
|
- Log files: 7+ files in root
|
||
|
|
- Scripts: 20+ files in root
|
||
|
|
- Reports: 4+ files in root
|
||
|
|
|
||
|
|
### After Organization
|
||
|
|
- Root directory: ~8 essential files
|
||
|
|
- Log files: All in `logs/`
|
||
|
|
- Scripts: All in `scripts/`
|
||
|
|
- Reports: All in `reports/`
|
||
|
|
- Examples: All in `examples/`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔍 Safety Features
|
||
|
|
|
||
|
|
1. **Dry Run Mode**: Default mode shows what would happen without making changes
|
||
|
|
2. **Skip Existing**: Won't overwrite files that already exist in destination
|
||
|
|
3. **Error Handling**: Tracks errors and continues processing
|
||
|
|
4. **Logging**: Creates detailed log file of all operations
|
||
|
|
5. **Directory Creation**: Automatically creates destination directories
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📝 Log File
|
||
|
|
|
||
|
|
The script creates a log file: `ROOT_FILES_ORGANIZATION_YYYYMMDD_HHMMSS.log`
|
||
|
|
|
||
|
|
This log contains:
|
||
|
|
- All file moves
|
||
|
|
- Warnings (skipped files)
|
||
|
|
- Errors (failed moves)
|
||
|
|
- Summary statistics
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ⚠️ Important Notes
|
||
|
|
|
||
|
|
1. **Backup First**: Consider backing up important files before running
|
||
|
|
2. **Review Dry Run**: Always review dry-run output before executing
|
||
|
|
3. **Git Status**: Check git status after running to see changes
|
||
|
|
4. **Update References**: Update any scripts/docs that reference moved files
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔄 After Running
|
||
|
|
|
||
|
|
After organizing files, you may need to:
|
||
|
|
|
||
|
|
1. **Update Script References**: If other scripts reference moved files, update paths
|
||
|
|
2. **Update Documentation**: Update docs that reference moved files
|
||
|
|
3. **Git Commit**: Commit the organization changes
|
||
|
|
4. **Verify**: Test that moved scripts still work from new locations
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📊 Example Output
|
||
|
|
|
||
|
|
```
|
||
|
|
╔══════════════════════════════════════════════════════════╗
|
||
|
|
║ Root Directory Files Organization ║
|
||
|
|
╚══════════════════════════════════════════════════════════╝
|
||
|
|
|
||
|
|
=== Moving Log Files to logs/ ===
|
||
|
|
Would move: 138.log → logs/138.log (log file)
|
||
|
|
Would move: MARKDOWN_CLEANUP_EXECUTION.log → logs/MARKDOWN_CLEANUP_EXECUTION.log (log file)
|
||
|
|
...
|
||
|
|
|
||
|
|
=== Moving Shell Scripts to scripts/ ===
|
||
|
|
Would move: INSTALL_TUNNEL.sh → scripts/INSTALL_TUNNEL.sh (shell script)
|
||
|
|
...
|
||
|
|
|
||
|
|
Summary:
|
||
|
|
Files Moved: 0
|
||
|
|
Files Skipped: 0
|
||
|
|
Errors: 0
|
||
|
|
|
||
|
|
⚠️ DRY RUN MODE - No files were actually moved
|
||
|
|
|
||
|
|
To execute the moves, run:
|
||
|
|
./scripts/organize-root-files.sh --execute
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Verification
|
||
|
|
|
||
|
|
After running, verify the organization:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Check root directory
|
||
|
|
find . -maxdepth 1 -type f ! -name ".*" | wc -l
|
||
|
|
|
||
|
|
# Check logs directory
|
||
|
|
ls logs/ | wc -l
|
||
|
|
|
||
|
|
# Check scripts directory
|
||
|
|
ls scripts/*.sh scripts/*.py scripts/*.js 2>/dev/null | wc -l
|
||
|
|
|
||
|
|
# Check reports directory
|
||
|
|
ls reports/*.json reports/*.txt 2>/dev/null | wc -l
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
*Guide created: 2026-01-06*
|