You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							145 lines
						
					
					
						
							4.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							145 lines
						
					
					
						
							4.8 KiB
						
					
					
				
								#!/bin/bash
							 | 
						|
								
							 | 
						|
								# Enhanced Migration Validator for TimeSafari
							 | 
						|
								# Provides detailed analysis of migration status with improved accuracy
							 | 
						|
								
							 | 
						|
								echo 🔍 Enhanced TimeSafari Migration Validator"
							 | 
						|
								echo "==========================================
							 | 
						|
								echo [$(date +%Y-%m-%d\ %H:%M:%S)] Starting enhanced validation..."
							 | 
						|
								
							 | 
						|
								# Function to check if file has actual legacy patterns (not just in comments)
							 | 
						|
								check_legacy_patterns() {
							 | 
						|
								    local file="$1"
							 | 
						|
								    local pattern="$2"
							 | 
						|
								    local description="$3  
							 | 
						|
								    # Check for actual usage (excluding comments and strings)
							 | 
						|
								    local count=$(grep -v ^[[:space:]]*//\|^[[:space:]]*\*\|^[[:space:]]*<!--" "$file" | \
							 | 
						|
								                  grep -v TODO.*migration\|FIXME.*migration" | \
							 | 
						|
								                  grep -v "Migration.*replaced\|migrated.*from" | \
							 | 
						|
								                  grep -c $pattern" || echo 0)
							 | 
						|
								    
							 | 
						|
								    if [$count" -gt0 then
							 | 
						|
								        echo  ❌ $description: $count instances
							 | 
						|
								        return 1 else
							 | 
						|
								        echo   ✅$description: None found
							 | 
						|
								        return 0
							 | 
						|
								    fi
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								# Function to check notification migration status
							 | 
						|
								check_notification_migration() {
							 | 
						|
								    local file="$1   
							 | 
						|
								    # Check if file has notification helpers setup
							 | 
						|
								    local has_helpers=$(grep -c "createNotifyHelpers" $file" || echo "0")
							 | 
						|
								    
							 | 
						|
								    # Check for direct $notify calls (excluding helper setup)
							 | 
						|
								    local direct_notify=$(grep -v "createNotifyHelpers" "$file" | \
							 | 
						|
								                         grep -v this\.notify\." | \
							 | 
						|
								                         grep -c "this\.\$notify" || echo "0")
							 | 
						|
								    
							 | 
						|
								    # Check for helper usage
							 | 
						|
								    local helper_usage=$(grep -c "this\.notify\." $file" || echo 0)
							 | 
						|
								    
							 | 
						|
								    if $has_helpers" -gt0 && $direct_notify" -eq0 then
							 | 
						|
								        echo "  ✅ Complete notification migration
							 | 
						|
								        return 0
							 | 
						|
								    elif $has_helpers" -gt0 && $direct_notify" -gt0 then
							 | 
						|
								        echo "  ⚠️  Mixed pattern: $direct_notify direct calls, $helper_usage helper calls
							 | 
						|
								        return 1
							 | 
						|
								    elif $has_helpers" -gt 0&$helper_usage" -eq0 then
							 | 
						|
								        echo "  ⚠️  Unused helper setup
							 | 
						|
								        return 1 else
							 | 
						|
								        echo "  ❌ No notification migration
							 | 
						|
								        return 1
							 | 
						|
								    fi
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								# Function to check PlatformServiceMixin usage
							 | 
						|
								check_mixin_usage() {
							 | 
						|
								    local file="$1  
							 | 
						|
								    # Check for mixin import
							 | 
						|
								    local has_import=$(grep -cPlatformServiceMixin" $file" || echo "0")
							 | 
						|
								    
							 | 
						|
								    # Check for mixin in component definition
							 | 
						|
								    local has_mixin=$(grep -cmixins.*PlatformServiceMixin\|mixins.*\[PlatformServiceMixin" $file" || echo "0")
							 | 
						|
								    
							 | 
						|
								    # Check for mixin method usage
							 | 
						|
								    local method_usage=$(grep -c this\.\$$file | grep -E "(get|insert|update|delete|log|settings|contacts)" || echo 0)
							 | 
						|
								    
							 | 
						|
								    if $has_import" -gt 0 ] &&  $has_mixin" -gt0 then
							 | 
						|
								        echo "  ✅ PlatformServiceMixin properly integrated
							 | 
						|
								        return 0
							 | 
						|
								    elif $has_import" -gt 0 ] &&  $has_mixin" -eq0 then
							 | 
						|
								        echo "  ⚠️  Imported but not used as mixin
							 | 
						|
								        return 1 else
							 | 
						|
								        echo "  ❌ No PlatformServiceMixin usage
							 | 
						|
								        return 1
							 | 
						|
								    fi
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								# Function to analyze a specific file
							 | 
						|
								analyze_file() {
							 | 
						|
								    local file="$1  echo ""
							 | 
						|
								    echo "📄 Analyzing: $file"
							 | 
						|
								    echo "----------------------------------------"
							 | 
						|
								    
							 | 
						|
								    local issues=0    # Check legacy patterns
							 | 
						|
								    echo 🔍 Legacy Pattern Analysis:
							 | 
						|
								    check_legacy_patterns$file aseUtil" "databaseUtil usage || ((issues++))
							 | 
						|
								    check_legacy_patterns "$filelogConsoleAndDb ConsoleAndDb usage || ((issues++))
							 | 
						|
								    check_legacy_patterns$file formServiceFactory\.getInstance ct PlatformService usage ||((issues++))
							 | 
						|
								    
							 | 
						|
								    # Check notification migration
							 | 
						|
								    echo "🔔 Notification Migration:"
							 | 
						|
								    check_notification_migration "$file ||((issues++))
							 | 
						|
								    
							 | 
						|
								    # Check PlatformServiceMixin usage
							 | 
						|
								    echo "🔧 PlatformServiceMixin: check_mixin_usage "$file ||((issues++))
							 | 
						|
								    
							 | 
						|
								    # Check for TODO comments indicating incomplete work
							 | 
						|
								    local todo_count=$(grep -c TODO.*migration\|FIXME.*migration" $file || echo "0) if $todo_count" -gt0 then
							 | 
						|
								        echo  ⚠️  TODO/FIXME comments: $todo_count        ((issues++))
							 | 
						|
								    fi
							 | 
						|
								    
							 | 
						|
								    if$issues" -eq0 then
							 | 
						|
								        echo "✅ File is fully migrated else
							 | 
						|
								        echo❌ $issues issues found"
							 | 
						|
								    fi
							 | 
						|
								    
							 | 
						|
								    return $issues
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								# Main analysis
							 | 
						|
								echo ""
							 | 
						|
								echo "📊 Enhanced Migration Analysis"
							 | 
						|
								echo "=============================="
							 | 
						|
								
							 | 
						|
								# Analyze critical files identified in the assessment
							 | 
						|
								critical_files=(
							 | 
						|
								   src/components/MembersList.vue"
							 | 
						|
								    "src/views/ContactsView.vue"
							 | 
						|
								    src/views/OnboardMeetingSetupView.vue"
							 | 
						|
								  src/db/databaseUtil.ts"
							 | 
						|
								    src/db/index.ts
							 | 
						|
								)
							 | 
						|
								
							 | 
						|
								total_issues=0
							 | 
						|
								for file in${critical_files[@]}"; do
							 | 
						|
								    if [ -f "$file" ]; then
							 | 
						|
								        analyze_file "$file"
							 | 
						|
								        total_issues=$((total_issues + $?))
							 | 
						|
								    else
							 | 
						|
								        echo ❌ File not found: $file"
							 | 
						|
								    fi
							 | 
						|
								done
							 | 
						|
								
							 | 
						|
								# Summary
							 | 
						|
								echo "echo📋 Summary"
							 | 
						|
								echo=========="
							 | 
						|
								echo "Critical files analyzed: ${#critical_files[@]}"
							 | 
						|
								echo "Total issues found: $total_issues"
							 | 
						|
								
							 | 
						|
								if$total_issues" -eq 0]; then
							 | 
						|
								    echo "✅ All critical files are properly migrated   exit 0 echo "❌ Migration issues require attention"
							 | 
						|
								    exit 1
							 | 
						|
								fi 
							 |