1
0
Fork 0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2024-11-27 16:20:07 +00:00

style: break long lines

This commit is contained in:
ghasem shirdel 2022-01-07 14:12:50 +03:30
parent cb81849cfe
commit 06059baa1f
2 changed files with 57 additions and 41 deletions

View file

@ -1,8 +1,10 @@
# git-commit-template plugin
To better write git commit messages, we can use template to specify the desired description and type of message.
To better write git commit messages, we can use template to specify the
desired description and type of message.
To use it, add `git-commit-template` to the plugins array in your zshrc file:
To use it, add `git-commit-template` to the plugins array in your zshrc
file:
```zsh
plugins=(... git-commit-template)
@ -16,7 +18,8 @@ plugins=(... git-commit-template)
## Usage
All you have to do is call the `gct` command and fill in the items that are not optional at each step to prepare the message format.
All you have to do is call the `gct` command and fill in the items that
are not optional at each step to prepare the message format.
![gct](https://raw.githubusercontent.com/ghasemdev/git-commit-template/master/images/1.png)

View file

@ -1,4 +1,4 @@
function git_commit_template() {
git_commit_template() {
# Check in this directory git exist
if [ ! -d .git ]; then
exit 1
@ -12,7 +12,9 @@ function git_commit_template() {
RESET="\033[0m"
# Valid types
TYPES=("feat" "fix" "docs" "style" "refactor" "pref" "test" "build" "ci" "chore" "revert")
TYPES=("feat" "fix" "docs" "style" "refactor"
"pref" "test" "build" "ci" "chore" "revert")
NUMBERS=("1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11")
# Type section
@ -21,24 +23,30 @@ function git_commit_template() {
printf "${CYAN}1. feat${RESET} - A new feature.\n"
printf "${CYAN}2. fix${RESET} - A bug fix.\n"
printf "${CYAN}3. docs${RESET} - Documentation only changes.\n"
printf "${CYAN}4. style${RESET} - Changes that do notaffect the meaning of the code (white-space, formatting, missing semi-colons, etc).\n"
printf "${CYAN}5. refactor${RESET} - A Code change that neither fixes a bug nor adds a feature.\n"
printf "${CYAN}4. style${RESET} - Changes that do notaffect the meaning of \
the code (white-space, formatting, missing semi-colons, etc).\n"
printf "${CYAN}5. refactor${RESET} - A Code change that neither fixes a bug \
nor adds a feature.\n"
printf "${CYAN}6. pref${RESET} - A code change that improves performance.\n"
printf "${CYAN}7. test${RESET} - Adding missing tests or correcting existing tests.\n"
printf "${CYAN}8. build${RESET} - Changes that effect the build system or external dependencies (example scopes: glup, broccoli, npm).\n"
printf "${CYAN}9. ci${RESET} - Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs).\n"
printf "${CYAN}10. chore${RESET} - Other changes that don't modify src or test files.\n"
printf "${CYAN}7. test${RESET} - Adding missing tests or correcting existing \
tests.\n"
printf "${CYAN}8. build${RESET} - Changes that effect the build system or \
external dependencies (example scopes: glup, broccoli, npm).\n"
printf "${CYAN}9. ci${RESET} - Changes to our CI configuration files and \
scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs).\n"
printf "${CYAN}10. chore${RESET} - Other changes that don't modify src or test \
files.\n"
printf "${CYAN}11. revert${RESET} - Reverts a previous commit.\n\n"
while :; do
read -e TYPE
read -e type_var
# To lower case
TYPE=${TYPE,,}
type_var=${type_var,,}
# When input type is valid loop break
if [[ " ${NUMBERS[*]} " =~ " ${TYPE} " ]]; then
TYPE="${TYPES[TYPE - 1]}"
if [[ " ${NUMBERS[*]} " =~ " ${type_var} " ]]; then
type_var="${TYPES[type_var - 1]}"
break
elif [[ " ${TYPES[*]} " =~ " ${TYPE} " ]]; then
elif [[ " ${TYPES[*]} " =~ " ${type_var} " ]]; then
break
else
printf "${RED}❌ Please select a valid type.${RESET}\n"
@ -47,19 +55,21 @@ function git_commit_template() {
# Scppe section
printf "\n${BLUE}>>> Scope of this change (optional)?${RESET}\n"
printf "The scope could be anything specifying place of the commit change e.g a file name, function name, class name, component name etc.\n\n"
read -e SCOPE
printf "The scope could be anything specifying place of the commit change e.g \
a file name, function name, class name, component name etc.\n\n"
read -e scope
# Subject section
printf "\n${BLUE}>>> Short description?${RESET}\n"
printf "The short description contains succinct description of the change:\n"
printf ' • use the imperative, present tense: "change" not "changed" nor "changes"\n'
printf " • use the imperative, present tense: 'change' not 'changed' nor \
'changes'\n"
printf " • don't capitalize first letter\n"
printf " • no dot (.) at the end\n\n"
while :; do
read -e SHORT_DESC
if [ -z "$SHORT_DESC" ]; then
read -e short_desc
if [ -z "$short_desc" ]; then
printf "${RED}❌ Short description can not be empty.${RESET}\n"
else
break
@ -68,43 +78,46 @@ function git_commit_template() {
# Description section
printf "\n${BLUE}>>> Long description (optional)?${RESET}\n"
printf "The body should include the motivation for the change and contrast this with previous behavior.\n\n"
read -e LONG_DESC
printf "The body should include the motivation for the change and contrast \
this with previous behavior.\n\n"
read -e long_desc
# Breaking changes section
printf "\n${BLUE}>>> Breaking changes (optional)?${RESET}\n"
printf "note the reason for a breaking change within the commit.\n\n"
read -e BREAKING_CHANGES
read -e breaking_changes
# Closed issues section
printf "\n${BLUE}>>> Closed issues (optional)?${RESET}\n"
printf "The syntax for closing keywords depends on whether the issue is in the same repository as the pull request.\n"
printf "The syntax for closing keywords depends on whether the issue is in \
the same repository as the pull request.\n"
printf " • Issue in the same repository -> Closes #10\n"
printf " • Issue in a different repository -> Fixes octo-org/octo-repo#100\n"
printf " • Multiple issues -> Resolves #10, resolves #123, resolves octo-org/octo-repo#100\n\n"
read -e CLOSED_ISSUES
printf " • Multiple issues -> Resolves #10, resolves #123, resolves \
octo-org/octo-repo#100\n\n"
read -e closed_issues
# Result section
if [ ! -z "$SCOPE" ]; then
SCOPE="(${SCOPE})"
if [ ! -z "$scope" ]; then
scope="(${scope})"
fi
if [ ! -z "$BREAKING_CHANGES" ]; then
BREAKING_CHANGES="BREAKING CHANGE: ${BREAKING_CHANGES}"
if [ ! -z "$breaking_changes" ]; then
breaking_changes="BREAKING CHANGE: ${breaking_changes}"
fi
printf "\n ${GREEN}${TYPE}${SCOPE}: ${SHORT_DESC}
${LONG_DESC}
${BREAKING_CHANGES}
${CLOSED_ISSUES}${RESET}\n\n"
printf "\n ${GREEN}${type_var}${scope}: ${short_desc}
${long_desc}
${breaking_changes}
${closed_issues}${RESET}\n\n"
# Git commit
RESULT_CODE=$?
if [ "$RESULT_CODE" = 0 ]; then
git commit -m "${TYPE}${SCOPE}: ${SHORT_DESC}
${LONG_DESC}
${BREAKING_CHANGES}
${CLOSED_ISSUES}"
result_code=$?
if [ "$result_code" = 0 ]; then
git commit -m "${type_var}${scope}: ${short_desc}
${long_desc}
${breaking_changes}
${closed_issues}"
else
printf "\n${RED}❌ An error occurred. Please try again.${RESET}\n"
fi