zsh:auto,comp: Add git-signoff function
Add `git-signoff` to signoff commits in given range. Reuse the `_git-rebase` completion function for `git-signoff`.
This commit is contained in:
21
.config/zsh/autoload/git/git-signoff
Executable file
21
.config/zsh/autoload/git/git-signoff
Executable file
@@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
## Author: Julian Prein <druckdev@protonmail.com>
|
||||||
|
## Created: 2022-03-29
|
||||||
|
##
|
||||||
|
## Signoff range of commits
|
||||||
|
|
||||||
|
# Exit if not in git repo
|
||||||
|
git rev-parse || return
|
||||||
|
|
||||||
|
# Exit if no arguments were given
|
||||||
|
[[ $# -gt 0 ]] || return
|
||||||
|
|
||||||
|
# Signoff all commits
|
||||||
|
env GIT_SEQUENCE_EDITOR="sed -Ei 's/^p(ick)?/e/'" git rebase -i "$@" || return
|
||||||
|
|
||||||
|
while git rebase --show-current-patch &>/dev/null; do
|
||||||
|
git commit --amend --signoff --no-edit --no-verify
|
||||||
|
git rebase --continue
|
||||||
|
done
|
||||||
|
|
||||||
|
return 0
|
||||||
@@ -39,6 +39,7 @@ compdef nvim-man=man
|
|||||||
compdef _git-log glog
|
compdef _git-log glog
|
||||||
compdef _git-checkout git-checkout-worktree
|
compdef _git-checkout git-checkout-worktree
|
||||||
compdef _git-commit git-commit-last-msg
|
compdef _git-commit git-commit-last-msg
|
||||||
|
compdef _git-rebase git-signoff
|
||||||
# Run git's completion once to avoid a `command not found` error when using the
|
# Run git's completion once to avoid a `command not found` error when using the
|
||||||
# completion functions on other programs without having completed something for
|
# completion functions on other programs without having completed something for
|
||||||
# git before in the same session.
|
# git before in the same session.
|
||||||
|
|||||||
Reference in New Issue
Block a user