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:
2022-03-30 02:34:40 +02:00
parent 5caff096cb
commit e024ca9f0a
2 changed files with 22 additions and 0 deletions

View 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

View File

@@ -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.