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.
		
		
		
		
		
			
		
			
				
					
					
						
							59 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							59 lines
						
					
					
						
							1.8 KiB
						
					
					
				
								#!/bin/bash
							 | 
						|
								
							 | 
						|
								# TimeSafari Migration Time Tracker
							 | 
						|
								# Usage: ./time-migration.sh ComponentName.vue
							 | 
						|
								
							 | 
						|
								if [ $# -eq 0 ]; then
							 | 
						|
								    echo "Usage: $0 ComponentName.vue"
							 | 
						|
								    exit 1
							 | 
						|
								fi
							 | 
						|
								
							 | 
						|
								COMPONENT=$1
							 | 
						|
								TIMESTAMP=$(date +"%Y-%m-%d %H:%M")
							 | 
						|
								LOG_FILE="migration-times.log"
							 | 
						|
								
							 | 
						|
								# Create log file header if it doesn't exist
							 | 
						|
								if [ ! -f "$LOG_FILE" ]; then
							 | 
						|
								    echo "Component,Start Time,End Time,Duration (minutes),Complexity,Issues,Commit" > "$LOG_FILE"
							 | 
						|
								fi
							 | 
						|
								
							 | 
						|
								# Check if this is start or end
							 | 
						|
								if [ "$2" = "start" ]; then
							 | 
						|
								    echo "⏱️  Starting migration: $COMPONENT at $TIMESTAMP"
							 | 
						|
								    echo "$COMPONENT,$TIMESTAMP,,,,,," >> "$LOG_FILE"
							 | 
						|
								    echo "Run: ./time-migration.sh $COMPONENT end"
							 | 
						|
								elif [ "$2" = "end" ]; then
							 | 
						|
								    # Calculate duration and update log
							 | 
						|
								    START_TIME=$(grep "^$COMPONENT," "$LOG_FILE" | tail -1 | cut -d',' -f2)
							 | 
						|
								    if [ -z "$START_TIME" ]; then
							 | 
						|
								        echo "❌ No start time found for $COMPONENT"
							 | 
						|
								        exit 1
							 | 
						|
								    fi
							 | 
						|
								    
							 | 
						|
								    # Calculate duration in minutes
							 | 
						|
								    START_EPOCH=$(date -d "$START_TIME" +%s)
							 | 
						|
								    END_EPOCH=$(date +%s)
							 | 
						|
								    DURATION=$(( (END_EPOCH - START_EPOCH) / 60 ))
							 | 
						|
								    
							 | 
						|
								    # Get latest commit hash
							 | 
						|
								    COMMIT=$(git log --oneline -1 | cut -d' ' -f1)
							 | 
						|
								    
							 | 
						|
								    echo "⏱️  Completed migration: $COMPONENT"
							 | 
						|
								    echo "   Duration: $DURATION minutes"
							 | 
						|
								    echo "   Commit: $COMMIT"
							 | 
						|
								    
							 | 
						|
								    # Update log file
							 | 
						|
								    sed -i "s/^$COMPONENT,$START_TIME,,,,,,$/$COMPONENT,$START_TIME,$TIMESTAMP,$DURATION,TBD,None,$COMMIT/" "$LOG_FILE"
							 | 
						|
								    
							 | 
						|
								    # Show summary
							 | 
						|
								    echo "📊 Migration Summary:"
							 | 
						|
								    echo "   Component: $COMPONENT"
							 | 
						|
								    echo "   Start: $START_TIME"
							 | 
						|
								    echo "   End: $TIMESTAMP"
							 | 
						|
								    echo "   Duration: $DURATION minutes"
							 | 
						|
								    echo "   Commit: $COMMIT"
							 | 
						|
								else
							 | 
						|
								    echo "Usage: $0 ComponentName.vue [start|end]"
							 | 
						|
								    echo "Example: $0 MyComponent.vue start"
							 | 
						|
								    echo "         $0 MyComponent.vue end"
							 | 
						|
								fi 
							 |