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
|