612 lines
16 KiB
Markdown
612 lines
16 KiB
Markdown
# Detailed Next Steps - Scripts Modularization
|
|
|
|
**Date**: 2025-01-27
|
|
**Status**: Structure Complete - Ready for Implementation
|
|
**Priority**: High
|
|
|
|
---
|
|
|
|
## 📋 Complete Implementation Checklist
|
|
|
|
### Phase 1: Script Migration (Move Files)
|
|
|
|
#### 1.1 Migration Scripts → `migration/`
|
|
|
|
- [ ] **Move `migrate-readme.sh`**
|
|
```bash
|
|
mv scripts/migrate-readme.sh scripts/migration/migrate-readme.sh
|
|
```
|
|
|
|
- [ ] **Move `migrate-terraform.sh`**
|
|
```bash
|
|
mv scripts/migrate-terraform.sh scripts/migration/migrate-terraform.sh
|
|
```
|
|
|
|
- [ ] **Move `migrate-to-api-gateway.sh`**
|
|
```bash
|
|
mv scripts/migrate-to-api-gateway.sh scripts/migration/migrate-to-api-gateway.sh
|
|
```
|
|
|
|
- [ ] **Move `migrate-to-k8s.sh`**
|
|
```bash
|
|
mv scripts/migrate-to-k8s.sh scripts/migration/migrate-to-k8s.sh
|
|
```
|
|
|
|
- [ ] **Move `migrate-to-monitoring.sh`**
|
|
```bash
|
|
mv scripts/migrate-to-monitoring.sh scripts/migration/migrate-to-monitoring.sh
|
|
```
|
|
|
|
- [ ] **Move `migrate-to-shared-packages.sh`**
|
|
```bash
|
|
mv scripts/migrate-to-shared-packages.sh scripts/migration/migrate-to-shared-packages.sh
|
|
```
|
|
|
|
#### 1.2 Metrics Scripts → `metrics/` and `metrics/collect/`
|
|
|
|
- [ ] **Move collection scripts to `metrics/collect/`**
|
|
```bash
|
|
mv scripts/collect-code-metrics.sh scripts/metrics/collect/collect-code-metrics.sh
|
|
mv scripts/collect-deployment-metrics.sh scripts/metrics/collect/collect-deployment-metrics.sh
|
|
mv scripts/collect-developer-metrics.sh scripts/metrics/collect/collect-developer-metrics.sh
|
|
mv scripts/collect-infrastructure-metrics.sh scripts/metrics/collect/collect-infrastructure-metrics.sh
|
|
mv scripts/collect-operational-metrics.sh scripts/metrics/collect/collect-operational-metrics.sh
|
|
mv scripts/collect-service-metrics.sh scripts/metrics/collect/collect-service-metrics.sh
|
|
```
|
|
|
|
- [ ] **Move tracking scripts to `metrics/`**
|
|
```bash
|
|
mv scripts/track-all-metrics.sh scripts/metrics/track-all-metrics.sh
|
|
mv scripts/track-success-metrics.sh scripts/metrics/track-success-metrics.sh
|
|
mv scripts/update-metrics.sh scripts/metrics/update-metrics.sh
|
|
mv scripts/generate-metrics-report.sh scripts/metrics/generate-metrics-report.sh
|
|
```
|
|
|
|
#### 1.3 DBIS Scripts → `dbis/`
|
|
|
|
- [ ] **Move DBIS scripts**
|
|
```bash
|
|
mv scripts/automate-dbis-migration.sh scripts/dbis/automate-dbis-migration.sh
|
|
mv scripts/migrate-all-dbis-projects.sh scripts/dbis/migrate-all-dbis-projects.sh
|
|
mv scripts/migrate-dbis-project.sh scripts/dbis/migrate-dbis-project.sh
|
|
mv scripts/test-dbis-migration.sh scripts/dbis/test-dbis-migration.sh
|
|
```
|
|
|
|
#### 1.4 Infrastructure Scripts → `infrastructure/`
|
|
|
|
- [ ] **Move infrastructure scripts**
|
|
```bash
|
|
mv scripts/setup-shared-infrastructure.sh scripts/infrastructure/setup-shared-infrastructure.sh
|
|
mv scripts/setup.sh scripts/infrastructure/setup.sh
|
|
```
|
|
|
|
#### 1.5 Utility Scripts → `utils/`
|
|
|
|
- [ ] **Move utility scripts**
|
|
```bash
|
|
mv scripts/analyze-costs.sh scripts/utils/analyze-costs.sh
|
|
mv scripts/optimize-builds.sh scripts/utils/optimize-builds.sh
|
|
mv scripts/deps-analyze.sh scripts/utils/deps-analyze.sh
|
|
mv scripts/deps-audit.sh scripts/utils/deps-audit.sh
|
|
mv scripts/build-all.sh scripts/utils/build-all.sh
|
|
mv scripts/test-all.sh scripts/utils/test-all.sh
|
|
mv scripts/verify-all.sh scripts/utils/verify-all.sh
|
|
mv scripts/cleanup.sh scripts/utils/cleanup.sh
|
|
```
|
|
|
|
---
|
|
|
|
### Phase 2: Update Script Paths and Add Libraries
|
|
|
|
#### 2.1 Update Migration Scripts
|
|
|
|
For each script in `migration/`, add library initialization at the top:
|
|
|
|
- [ ] **Update `migration/migrate-readme.sh`**
|
|
```bash
|
|
# Add after shebang:
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "$SCRIPT_DIR/../lib/init.sh"
|
|
```
|
|
|
|
- [ ] **Update `migration/migrate-terraform.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with `log_info`, `log_error`, etc.
|
|
- Add input validation using `validate_project_name`
|
|
|
|
- [ ] **Update `migration/migrate-to-api-gateway.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Add validation for project name and URL
|
|
|
|
- [ ] **Update `migration/migrate-to-k8s.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Add `validate_project_name` for input
|
|
- Use `require_command kubectl`
|
|
|
|
- [ ] **Update `migration/migrate-to-monitoring.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Add validation for project name and environment
|
|
|
|
- [ ] **Update `migration/migrate-to-shared-packages.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Add input validation
|
|
|
|
#### 2.2 Update Metrics Scripts
|
|
|
|
- [ ] **Update all scripts in `metrics/collect/`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Standardize output format
|
|
|
|
- [ ] **Update `metrics/track-all-metrics.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Use `require_command jq` if needed
|
|
|
|
- [ ] **Update `metrics/track-success-metrics.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
|
|
- [ ] **Update `metrics/update-metrics.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Add validation for metric category parameter
|
|
|
|
- [ ] **Update `metrics/generate-metrics-report.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Use `ensure_dir` for output directories
|
|
|
|
#### 2.3 Update DBIS Scripts
|
|
|
|
- [ ] **Update `dbis/automate-dbis-migration.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Add validation for project name
|
|
|
|
- [ ] **Update `dbis/migrate-all-dbis-projects.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Add error handling with `set_error_trap`
|
|
|
|
- [ ] **Update `dbis/migrate-dbis-project.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Add `validate_project_name`
|
|
|
|
- [ ] **Update `dbis/test-dbis-migration.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Add validation
|
|
|
|
#### 2.4 Update Infrastructure Scripts
|
|
|
|
- [ ] **Update `infrastructure/setup-shared-infrastructure.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Use `require_command` for required tools
|
|
- Add `set_error_trap` for error handling
|
|
|
|
- [ ] **Update `infrastructure/setup.sh`**
|
|
- Add library initialization
|
|
- Replace `check_tool` function with `require_command`
|
|
- Replace `echo` with logging functions
|
|
- Use `log_success` and `log_failure` for status
|
|
|
|
#### 2.5 Update Utility Scripts
|
|
|
|
- [ ] **Update `utils/analyze-costs.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
|
|
- [ ] **Update `utils/optimize-builds.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
|
|
- [ ] **Update `utils/deps-analyze.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Use `require_command` for required tools
|
|
|
|
- [ ] **Update `utils/deps-audit.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Use `require_command` for required tools
|
|
|
|
- [ ] **Update `utils/build-all.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Add error handling
|
|
|
|
- [ ] **Update `utils/test-all.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Add error handling
|
|
|
|
- [ ] **Update `utils/verify-all.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Add error handling
|
|
|
|
- [ ] **Update `utils/cleanup.sh`**
|
|
- Add library initialization
|
|
- Replace `echo` with logging functions
|
|
- Add confirmation prompt using `confirm`
|
|
|
|
---
|
|
|
|
### Phase 3: Create Backward Compatibility
|
|
|
|
#### 3.1 Create Wrapper Scripts (Optional - for backward compatibility)
|
|
|
|
Create wrapper scripts in root `scripts/` directory that call the new locations:
|
|
|
|
- [ ] **Create `scripts/migrate-to-k8s.sh` wrapper**
|
|
```bash
|
|
#!/bin/bash
|
|
# Wrapper for backward compatibility
|
|
# This script has moved to scripts/migration/migrate-to-k8s.sh
|
|
exec "$(dirname "$0")/migration/migrate-to-k8s.sh" "$@"
|
|
```
|
|
|
|
- [ ] **Create wrapper for each migrated script**
|
|
- `migrate-readme.sh` → `migration/migrate-readme.sh`
|
|
- `migrate-terraform.sh` → `migration/migrate-terraform.sh`
|
|
- `migrate-to-api-gateway.sh` → `migration/migrate-to-api-gateway.sh`
|
|
- `migrate-to-monitoring.sh` → `migration/migrate-to-monitoring.sh`
|
|
- `migrate-to-shared-packages.sh` → `migration/migrate-to-shared-packages.sh`
|
|
- All metrics scripts
|
|
- All DBIS scripts
|
|
- All infrastructure scripts
|
|
- All utility scripts
|
|
|
|
**Alternative**: Update all references instead of creating wrappers (recommended)
|
|
|
|
---
|
|
|
|
### Phase 4: Update Script References
|
|
|
|
#### 4.1 Update Documentation
|
|
|
|
- [ ] **Update main `README.md`**
|
|
- Update script paths in examples
|
|
- Update quick start guide
|
|
- Update script references
|
|
|
|
- [ ] **Update `QUICK_START_GUIDE.md`**
|
|
- Update all script paths
|
|
- Update examples
|
|
|
|
- [ ] **Update `INTEGRATION_TASKS_LIST.md`**
|
|
- Update script references if any
|
|
|
|
- [ ] **Update all migration guides in `docs/`**
|
|
- Search for script references
|
|
- Update paths
|
|
|
|
#### 4.2 Update CI/CD Workflows
|
|
|
|
- [ ] **Update `.github/workflows/ci-pilot-template.yml`**
|
|
- Update script paths if referenced
|
|
|
|
- [ ] **Update `.github/workflows/publish-shared-packages.yml`**
|
|
- Update script paths if referenced
|
|
|
|
- [ ] **Update `.github/workflows/infrastructure-deploy.yml`**
|
|
- Update script paths if referenced
|
|
|
|
- [ ] **Update `.github/workflows/metrics-collection.yml`**
|
|
- Update script paths for metrics scripts
|
|
|
|
#### 4.3 Update Other Scripts
|
|
|
|
- [ ] **Search for script references in other scripts**
|
|
```bash
|
|
grep -r "scripts/migrate-to-k8s.sh" . --exclude-dir=node_modules
|
|
grep -r "scripts/collect-" . --exclude-dir=node_modules
|
|
grep -r "scripts/track-" . --exclude-dir=node_modules
|
|
```
|
|
|
|
- [ ] **Update found references**
|
|
- Update paths to new locations
|
|
- Test after updates
|
|
|
|
---
|
|
|
|
### Phase 5: Testing
|
|
|
|
#### 5.1 Test Library Loading
|
|
|
|
- [ ] **Test `lib/init.sh`**
|
|
```bash
|
|
source scripts/lib/init.sh
|
|
log_info "Test message"
|
|
log_error "Test error"
|
|
```
|
|
|
|
- [ ] **Test each library individually**
|
|
- Test `colors.sh`
|
|
- Test `logging.sh`
|
|
- Test `utils.sh`
|
|
- Test `validation.sh`
|
|
- Test `error-handling.sh`
|
|
- Test `env.sh`
|
|
|
|
#### 5.2 Test Migration Scripts
|
|
|
|
- [ ] **Test `migration/migrate-to-k8s.sh`**
|
|
```bash
|
|
./scripts/migration/migrate-to-k8s.sh test-project
|
|
```
|
|
|
|
- [ ] **Test `migration/migrate-to-api-gateway.sh`**
|
|
```bash
|
|
./scripts/migration/migrate-to-api-gateway.sh test-service http://test-service:8080
|
|
```
|
|
|
|
- [ ] **Test all migration scripts with help flags**
|
|
- Verify help text displays correctly
|
|
- Verify error messages are clear
|
|
|
|
#### 5.3 Test Metrics Scripts
|
|
|
|
- [ ] **Test `metrics/update-metrics.sh`**
|
|
```bash
|
|
./scripts/metrics/update-metrics.sh all
|
|
```
|
|
|
|
- [ ] **Test `metrics/generate-metrics-report.sh`**
|
|
```bash
|
|
./scripts/metrics/generate-metrics-report.sh
|
|
```
|
|
|
|
- [ ] **Test each collection script**
|
|
- Verify they create output files
|
|
- Verify output format is correct
|
|
|
|
#### 5.4 Test DBIS Scripts
|
|
|
|
- [ ] **Test `dbis/test-dbis-migration.sh`**
|
|
```bash
|
|
./scripts/dbis/test-dbis-migration.sh dbis_monorepo
|
|
```
|
|
|
|
- [ ] **Test all DBIS scripts with help flags**
|
|
|
|
#### 5.5 Test Infrastructure Scripts
|
|
|
|
- [ ] **Test `infrastructure/setup.sh`**
|
|
```bash
|
|
./scripts/infrastructure/setup.sh
|
|
```
|
|
|
|
- [ ] **Test `infrastructure/setup-shared-infrastructure.sh`**
|
|
- Verify it checks for required tools
|
|
- Verify error handling works
|
|
|
|
#### 5.6 Test Utility Scripts
|
|
|
|
- [ ] **Test `utils/build-all.sh`**
|
|
- [ ] **Test `utils/test-all.sh`**
|
|
- [ ] **Test `utils/verify-all.sh`**
|
|
- [ ] **Test `utils/cleanup.sh`** (with confirmation)
|
|
|
|
#### 5.7 Integration Testing
|
|
|
|
- [ ] **Test script calling other scripts**
|
|
- Verify paths work correctly
|
|
- Verify error propagation
|
|
|
|
- [ ] **Test from project root**
|
|
- All scripts should work from project root
|
|
- Paths should resolve correctly
|
|
|
|
---
|
|
|
|
### Phase 6: Documentation Updates
|
|
|
|
#### 6.1 Update Scripts README
|
|
|
|
- [ ] **Add usage examples for each category**
|
|
- Migration examples
|
|
- Metrics examples
|
|
- DBIS examples
|
|
- Infrastructure examples
|
|
- Utility examples
|
|
|
|
- [ ] **Add library usage examples**
|
|
- Show how to use each library
|
|
- Show common patterns
|
|
|
|
- [ ] **Add troubleshooting section**
|
|
- Common issues
|
|
- Solutions
|
|
|
|
#### 6.2 Create Migration Guide
|
|
|
|
- [ ] **Create `docs/SCRIPTS_MIGRATION_GUIDE.md`**
|
|
- Document the migration process
|
|
- Document breaking changes
|
|
- Document new paths
|
|
- Document library usage
|
|
|
|
#### 6.3 Update Main Documentation
|
|
|
|
- [ ] **Update `README.md` (project root)**
|
|
- Update script references
|
|
- Update quick start examples
|
|
|
|
- [ ] **Update `QUICK_START_GUIDE.md`**
|
|
- Update all script paths
|
|
- Update examples
|
|
|
|
- [ ] **Update `PROJECT_INDEX.md`**
|
|
- Update script counts
|
|
- Update structure description
|
|
|
|
---
|
|
|
|
### Phase 7: Quality Assurance
|
|
|
|
#### 7.1 Code Quality
|
|
|
|
- [ ] **Lint all scripts**
|
|
```bash
|
|
find scripts -name "*.sh" -exec shellcheck {} \;
|
|
```
|
|
|
|
- [ ] **Fix any linting errors**
|
|
- Address shellcheck warnings
|
|
- Fix syntax errors
|
|
|
|
- [ ] **Verify shebang lines**
|
|
- All scripts should have `#!/bin/bash` or `#!/usr/bin/env bash`
|
|
- Make all scripts executable: `chmod +x scripts/**/*.sh`
|
|
|
|
#### 7.2 Consistency Check
|
|
|
|
- [ ] **Verify all scripts use libraries**
|
|
- Check for scripts still using `echo` instead of logging
|
|
- Check for scripts not using validation
|
|
- Check for scripts not using error handling
|
|
|
|
- [ ] **Verify consistent patterns**
|
|
- All scripts should initialize libraries the same way
|
|
- All scripts should have help text
|
|
- All scripts should validate inputs
|
|
|
|
#### 7.3 Performance Check
|
|
|
|
- [ ] **Test script execution time**
|
|
- Compare before/after library loading
|
|
- Verify no significant performance impact
|
|
|
|
---
|
|
|
|
### Phase 8: Final Verification
|
|
|
|
#### 8.1 Complete Verification Checklist
|
|
|
|
- [ ] **All scripts moved to correct directories**
|
|
- [ ] **All scripts updated to use libraries**
|
|
- [ ] **All scripts tested and working**
|
|
- [ ] **All documentation updated**
|
|
- [ ] **All references updated**
|
|
- [ ] **No broken links or paths**
|
|
- [ ] **All scripts executable**
|
|
- [ ] **No linting errors**
|
|
- [ ] **Backward compatibility verified** (if using wrappers)
|
|
|
|
#### 8.2 Create Verification Script
|
|
|
|
- [ ] **Create `scripts/verify-structure.sh`**
|
|
```bash
|
|
#!/bin/bash
|
|
# Verify scripts directory structure
|
|
|
|
# Check all directories exist
|
|
# Check all scripts are in correct locations
|
|
# Check all scripts are executable
|
|
# Check all scripts can load libraries
|
|
```
|
|
|
|
#### 8.3 Run Final Tests
|
|
|
|
- [ ] **Run all scripts with `--help` or no args**
|
|
- Verify help text displays
|
|
- Verify no errors
|
|
|
|
- [ ] **Run integration tests**
|
|
- Test complete workflows
|
|
- Verify end-to-end functionality
|
|
|
|
---
|
|
|
|
## 📊 Progress Tracking
|
|
|
|
### Current Status
|
|
- ✅ Directory structure: **Complete**
|
|
- ✅ Shared libraries: **Complete**
|
|
- ✅ Documentation (structure): **Complete**
|
|
- ⏳ Script migration: **0/30** (0%)
|
|
- ⏳ Script updates: **0/30** (0%)
|
|
- ⏳ Testing: **0%**
|
|
- ⏳ Documentation updates: **0%**
|
|
|
|
### Estimated Time
|
|
- **Phase 1 (Migration)**: 1-2 hours
|
|
- **Phase 2 (Updates)**: 4-6 hours
|
|
- **Phase 3 (Compatibility)**: 1 hour (optional)
|
|
- **Phase 4 (References)**: 2-3 hours
|
|
- **Phase 5 (Testing)**: 3-4 hours
|
|
- **Phase 6 (Documentation)**: 2-3 hours
|
|
- **Phase 7 (QA)**: 1-2 hours
|
|
- **Phase 8 (Verification)**: 1 hour
|
|
|
|
**Total Estimated Time**: 15-22 hours
|
|
|
|
---
|
|
|
|
## 🎯 Priority Order
|
|
|
|
### High Priority (Do First)
|
|
1. Phase 1: Script Migration
|
|
2. Phase 2: Update Scripts (at least library initialization)
|
|
3. Phase 5: Basic Testing
|
|
|
|
### Medium Priority
|
|
4. Phase 4: Update References
|
|
5. Phase 6: Documentation Updates
|
|
|
|
### Low Priority (Can be done later)
|
|
6. Phase 3: Backward Compatibility (if needed)
|
|
7. Phase 7: Quality Assurance
|
|
8. Phase 8: Final Verification
|
|
|
|
---
|
|
|
|
## 🚀 Quick Start Commands
|
|
|
|
### Move All Scripts at Once
|
|
```bash
|
|
cd /home/intlc/projects/scripts
|
|
|
|
# Migration scripts
|
|
mv migrate-readme.sh migrate-terraform.sh migrate-to-*.sh migration/
|
|
|
|
# Metrics scripts
|
|
mv collect-*.sh metrics/collect/
|
|
mv track-*.sh update-metrics.sh generate-metrics-report.sh metrics/
|
|
|
|
# DBIS scripts
|
|
mv *dbis*.sh dbis/
|
|
|
|
# Infrastructure scripts
|
|
mv setup*.sh infrastructure/
|
|
|
|
# Utility scripts
|
|
mv analyze-costs.sh optimize-builds.sh deps-*.sh build-all.sh test-all.sh verify-all.sh cleanup.sh utils/
|
|
```
|
|
|
|
### Update All Scripts to Use Libraries
|
|
```bash
|
|
# Add to top of each script (after shebang):
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "$SCRIPT_DIR/../lib/init.sh"
|
|
```
|
|
|
|
### Make All Scripts Executable
|
|
```bash
|
|
find scripts -name "*.sh" -exec chmod +x {} \;
|
|
```
|
|
|
|
---
|
|
|
|
**Status**: Ready for Implementation
|
|
**Next Action**: Begin Phase 1 - Script Migration
|
|
|