21 lines
644 B
Bash
Executable File
21 lines
644 B
Bash
Executable File
#!/bin/bash
|
|
commit_msg_file="$1"
|
|
commit_msg=$(cat "$commit_msg_file")
|
|
|
|
# Check commit message format
|
|
if ! echo "$commit_msg" | grep -qE '^(feat|fix|docs|style|refactor|test|chore)\([[:alnum:]_-]+\): .+'; then
|
|
echo "Error: Commit message format does not follow convention"
|
|
echo "Expected format: type(scope): description"
|
|
echo "Valid types: feat, fix, docs, style, refactor, test, chore"
|
|
exit 1
|
|
fi
|
|
|
|
# Check first line length
|
|
if [ $(echo "$commit_msg" | head -n 1 | wc -c) -gt 72 ]; then
|
|
echo "Error: First line of commit message must not exceed 72 characters"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Commit message format validated ✓"
|
|
exit 0
|