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
|