Initial commit
This commit is contained in:
59
skills/tdg/scripts/tdg_phase.sh
Executable file
59
skills/tdg/scripts/tdg_phase.sh
Executable file
@@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
|
||||
###########################################
|
||||
# Part of Test-Driven Generation plugin
|
||||
###########################################
|
||||
# TDD Phase Detection Script
|
||||
# Detects the current TDD phase by checking commit messages for markers:
|
||||
# - red: (failing test)
|
||||
# - green: (passing test)
|
||||
# - refactor: (code improvement)
|
||||
|
||||
# Get the most recent commit message
|
||||
latest_commit=$(git log -1 --pretty=%B 2>/dev/null)
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "unknown"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Convert to lowercase for case-insensitive matching
|
||||
commit_lower=$(echo "$latest_commit" | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
# Check for phase markers in order of precedence
|
||||
if echo "$commit_lower" | grep -q "^red:"; then
|
||||
echo "red"
|
||||
exit 0
|
||||
elif echo "$commit_lower" | grep -q "^green:"; then
|
||||
echo "green"
|
||||
exit 0
|
||||
elif echo "$commit_lower" | grep -q "^refactor:"; then
|
||||
echo "refactor"
|
||||
exit 0
|
||||
else
|
||||
# If no marker found in latest commit, check more commits
|
||||
recent_commits=$(git log -10 --pretty=%B 2>/dev/null)
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "unknown"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
recent_lower=$(echo "$recent_commits" | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
# Look for the most recent phase marker
|
||||
if echo "$recent_lower" | grep -q "^red:"; then
|
||||
echo "red"
|
||||
exit 0
|
||||
elif echo "$recent_lower" | grep -q "^green:"; then
|
||||
echo "green"
|
||||
exit 0
|
||||
elif echo "$recent_lower" | grep -q "^refactor:"; then
|
||||
echo "refactor"
|
||||
exit 0
|
||||
else
|
||||
# No markers found in recent history
|
||||
echo "unknown"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
Reference in New Issue
Block a user