diff options
author | Oscar Lee-Vermeren <oscar.leevermeren@gmail.com> | 2023-09-04 13:21:27 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-04 19:21:27 +0200 |
commit | 1abc1d998a71efd50af30210e26bee462496e442 (patch) | |
tree | a40a7fa0f66a32ab7c373c0d7531b7c5bd94239b | |
parent | f694d5ecc9aa45f4c394d2e15bf2bfde96eeeda6 (diff) | |
download | zsh-1abc1d998a71efd50af30210e26bee462496e442.tar.gz zsh-1abc1d998a71efd50af30210e26bee462496e442.tar.bz2 zsh-1abc1d998a71efd50af30210e26bee462496e442.zip |
feat(git-commit): create plugin (#9646)
Co-authored-by: K. Akatsuki <thevortexspirit@gmail.com>
-rw-r--r-- | plugins/git-commit/README.md | 36 | ||||
-rw-r--r-- | plugins/git-commit/git-commit.plugin.zsh | 23 |
2 files changed, 59 insertions, 0 deletions
diff --git a/plugins/git-commit/README.md b/plugins/git-commit/README.md new file mode 100644 index 000000000..dc10d8ad5 --- /dev/null +++ b/plugins/git-commit/README.md @@ -0,0 +1,36 @@ +# git-commit plugin + +The git-commit plugin adds several [git aliases](https://www.git-scm.com/docs/git-config#Documentation/git-config.txt-alias) for [conventional commit](https://www.conventionalcommits.org/en/v1.0.0/#summary) messages. + +To use it, add `git-commit` to the plugins array in your zshrc file: + +```zsh +plugins=(... git-commit) +``` + +## Syntax + +```zshrc +git <type> [(-s, --scope) "<scope>"] "<message>" +``` + +> ⚠️ Single/Double quotes around the scope and message are required + +Where `type` is one of the following: + +- `build` +- `chore` +- `ci` +- `docs` +- `feat` +- `fix` +- `perf` +- `refactor` +- `revert` +- `style` +- `test` + +## Examples + +`git style "remove trailing whitespace"` -> `git commit -m "style: remove trailing whitespace"` +`git fix -s "router" "correct redirect link"` -> `git commit -m "fix(router): correct redirect link"` diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh new file mode 100644 index 000000000..70d541f21 --- /dev/null +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -0,0 +1,23 @@ +_register() { + if ! git config --global --get-all alias.$1 &>/dev/null; then + git config --global alias.$1 '!a() { if [[ "$1" == "-s" || "$1" == "--scope" ]]; then git commit -m "'$1'(${2}): ${@:3}"; else git commit -m "'$1': ${@}"; fi }; a' + fi +} + +aliases=( + 'build' + 'chore' + 'ci' + 'docs' + 'feat' + 'fix' + 'perf' + 'refactor' + 'revert' + 'style' + 'test' +) + +for alias in "${aliases[@]}"; do + _register $alias +done
\ No newline at end of file |