From 6a9c0e3f82f8d5fec91f409d2b1abc68722068d9 Mon Sep 17 00:00:00 2001 From: sandroid Date: Fri, 1 Apr 2022 23:28:20 +0200 Subject: [PATCH] Refactored grc --- forgit.plugin.zsh | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/forgit.plugin.zsh b/forgit.plugin.zsh index 7586a77..8c89959 100755 --- a/forgit.plugin.zsh +++ b/forgit.plugin.zsh @@ -300,7 +300,7 @@ forgit::checkout::commit() { forgit::revert::commit() { forgit::inside_work_tree || return 1 [[ $# -ne 0 ]] && { git revert "$@"; return $?; } - local cmd opts files preview commits + local cmd opts files preview commits IFS cmd="git log --graph --color=always --format='$forgit_log_format' $* $forgit_emojify" opts=" $FORGIT_FZF_DEFAULT_OPTS @@ -309,15 +309,14 @@ forgit::revert::commit() { " files=$(sed -nE 's/.* -- (.*)/\1/p' <<< "$*") # extract files parameters for `git show` command preview="echo {} |grep -Eo '[a-f0-9]+' |head -1 |xargs -I% git show --color=always % -- $files | $forgit_show_pager" - commits="$(eval "$cmd" | + # shellcheck disable=2207 + IFS=$'\n' commits=($(eval "$cmd" | FZF_DEFAULT_OPTS="$opts" fzf --preview="$preview" -m | - sed 's/^[^a-f^0-9]*\([a-f0-9]*\).*/\1/' | - tr $'\n' ' ')" - if [[ "$commits" == *[![:space:]]* ]]; then - git revert $(echo "$commits") - else - return 1 - fi + sed 's/^[^a-f^0-9]*\([a-f0-9]*\).*/\1/')) + [ ${#commits[@]} -eq 0 ] && return 1 + for commit in "${commits[@]}"; do + git revert "$commit" + done } # git ignore generator