mirror of
https://github.com/wfxr/forgit.git
synced 2026-09-10 15:26:16 -04:00
Revert "Fix: Pager variables are not evaluated"
This reverts commit 70fac98eea.
This commit is contained in:
parent
70fac98eea
commit
ea0e674d6a
100
bin/git-forgit
100
bin/git-forgit
|
|
@ -127,53 +127,12 @@ _forgit_quote_files() {
|
|||
echo "${files[*]}"
|
||||
}
|
||||
|
||||
_forgit_page() {
|
||||
local pager
|
||||
pager=${FORGIT_PAGER:-$(git config core.pager)}
|
||||
if [[ -n $pager ]]; then
|
||||
eval "$pager"
|
||||
else
|
||||
cat
|
||||
fi
|
||||
}
|
||||
|
||||
_forgit_diff_page() {
|
||||
local pager
|
||||
pager=${FORGIT_DIFF_PAGER:-$(git config pager.diff)}
|
||||
if [[ -n $pager ]]; then
|
||||
eval "$pager"
|
||||
else
|
||||
_forgit_page
|
||||
fi
|
||||
}
|
||||
|
||||
_forgit_show_page() {
|
||||
local pager
|
||||
pager=${FORGIT_SHOW_PAGER:-$(git config pager.show)}
|
||||
if [[ -n $pager ]]; then
|
||||
eval "$pager"
|
||||
else
|
||||
_forgit_page
|
||||
fi
|
||||
}
|
||||
|
||||
_forgit_blame_page() {
|
||||
local pager
|
||||
pager=${FORGIT_BLAME_PAGER:-$(git config pager.blame)}
|
||||
if [[ -n $pager ]]; then
|
||||
eval "$pager"
|
||||
else
|
||||
_forgit_page
|
||||
fi
|
||||
}
|
||||
|
||||
_forgit_enter_page() {
|
||||
if [[ -n $FORGIT_ENTER_PAGER ]]; then
|
||||
eval "$FORGIT_ENTER_PAGER"
|
||||
else
|
||||
LESS='-r' less
|
||||
fi
|
||||
}
|
||||
_forgit_pager=${FORGIT_PAGER:-$(git config core.pager || echo 'cat')}
|
||||
_forgit_show_pager=${FORGIT_SHOW_PAGER:-$(git config pager.show || echo "$_forgit_pager")}
|
||||
_forgit_diff_pager=${FORGIT_DIFF_PAGER:-$(git config pager.diff || echo "$_forgit_pager")}
|
||||
_forgit_ignore_pager=${FORGIT_IGNORE_PAGER:-$(hash bat &>/dev/null && echo 'bat -l gitignore --color=always' || echo 'cat')}
|
||||
_forgit_blame_pager=${FORGIT_BLAME_PAGER:-$(git config pager.blame || echo "$_forgit_pager")}
|
||||
_forgit_enter_pager=${FORGIT_ENTER_PAGER:-"LESS='-r' less"}
|
||||
|
||||
_forgit_log_graph_enable=${FORGIT_LOG_GRAPH_ENABLE:-"true"}
|
||||
_forgit_log_format=${FORGIT_LOG_FORMAT:-%C(auto)%h%d %s %C(black)%C(bold)%cr%Creset}
|
||||
|
|
@ -189,7 +148,7 @@ _forgit_log_preview() {
|
|||
local sha
|
||||
sha=$(echo "$1" | _forgit_extract_sha)
|
||||
shift
|
||||
echo "$sha" | xargs -I% git show --color=always -U"$_forgit_preview_context" % -- "$@" | _forgit_show_page
|
||||
echo "$sha" | xargs -I% git show --color=always -U"$_forgit_preview_context" % -- "$@" | $_forgit_show_pager
|
||||
}
|
||||
|
||||
_forgit_log_enter() {
|
||||
|
|
@ -264,7 +223,7 @@ _forgit_diff_view() {
|
|||
IFS=" " read -r -a commits <<< "${*:3}"
|
||||
fi
|
||||
echo "$input_line" | _forgit_get_files_from_diff_line | xargs -0 \
|
||||
"$FORGIT" exec_diff "${commits[@]}" -U"$diff_context" -- | _forgit_diff_page
|
||||
"$FORGIT" exec_diff "${commits[@]}" -U"$diff_context" -- | $_forgit_diff_pager
|
||||
}
|
||||
|
||||
_forgit_edit_diffed_file() {
|
||||
|
|
@ -305,7 +264,7 @@ _forgit_diff() {
|
|||
done
|
||||
opts="
|
||||
$FORGIT_FZF_DEFAULT_OPTS
|
||||
+m -0 --bind=\"enter:execute($FORGIT diff_enter {} $escaped_commits | $FORGIT enter_page)\"
|
||||
+m -0 --bind=\"enter:execute($FORGIT diff_enter {} $escaped_commits | $_forgit_enter_pager)\"
|
||||
--preview=\"$FORGIT diff_view {} '$_forgit_preview_context' $escaped_commits\"
|
||||
--bind=\"alt-e:execute-silent($FORGIT edit_diffed_file {})+refresh-preview\"
|
||||
$FORGIT_DIFF_FZF_OPTS
|
||||
|
|
@ -326,9 +285,9 @@ _forgit_diff() {
|
|||
_forgit_add_preview() {
|
||||
file=$(echo "$1" | _forgit_get_single_file_from_add_line)
|
||||
if (git status -s -- "$file" | grep '^??') &>/dev/null; then # diff with /dev/null for untracked files
|
||||
git diff --color=always --no-index -- /dev/null "$file" | _forgit_diff_page | sed '2 s/added:/untracked:/'
|
||||
git diff --color=always --no-index -- /dev/null "$file" | $_forgit_diff_pager | sed '2 s/added:/untracked:/'
|
||||
else
|
||||
git diff --color=always -- "$file" | _forgit_diff_page
|
||||
git diff --color=always -- "$file" | $_forgit_diff_pager
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -380,7 +339,7 @@ _forgit_add() {
|
|||
|
||||
_forgit_reset_head_preview() {
|
||||
file=$1
|
||||
git diff --staged --color=always -- "$file" | _forgit_diff_page
|
||||
git diff --staged --color=always -- "$file" | $_forgit_diff_pager
|
||||
}
|
||||
|
||||
_forgit_git_reset_head() {
|
||||
|
|
@ -418,7 +377,7 @@ _forgit_reset_head() {
|
|||
_forgit_stash_show_preview() {
|
||||
local stash
|
||||
stash=$(echo "$1" | cut -d: -f1)
|
||||
_forgit_git_stash_show "$stash" | _forgit_diff_page
|
||||
_forgit_git_stash_show "$stash" | $_forgit_diff_pager
|
||||
}
|
||||
|
||||
_forgit_git_stash_show() {
|
||||
|
|
@ -434,7 +393,7 @@ _forgit_stash_show() {
|
|||
_forgit_parse_array _forgit_stash_show_git_opts "$FORGIT_STASH_SHOW_GIT_OPTS"
|
||||
opts="
|
||||
$FORGIT_FZF_DEFAULT_OPTS
|
||||
+s +m -0 --tiebreak=index --bind=\"enter:execute($FORGIT stash_show_preview {} | $FORGIT enter_page)\"
|
||||
+s +m -0 --tiebreak=index --bind=\"enter:execute($FORGIT stash_show_preview {} | $_forgit_enter_pager)\"
|
||||
--bind=\"ctrl-y:execute-silent($FORGIT yank_stash_name {})\"
|
||||
--preview=\"$FORGIT stash_show_preview {}\"
|
||||
$FORGIT_STASH_FZF_OPTS
|
||||
|
|
@ -448,9 +407,9 @@ _forgit_stash_show() {
|
|||
|
||||
_forgit_stash_push_preview() {
|
||||
if _forgit_is_file_tracked "$1"; then
|
||||
git diff --color=always -- "$1" | _forgit_diff_page
|
||||
git diff --color=always -- "$1" | $_forgit_diff_pager
|
||||
else
|
||||
git diff --color=always /dev/null "$1" | _forgit_diff_page
|
||||
git diff --color=always /dev/null "$1" | $_forgit_diff_pager
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -509,7 +468,7 @@ _forgit_clean() {
|
|||
}
|
||||
|
||||
_forgit_cherry_pick_preview() {
|
||||
echo "$1" | cut -f2- | _forgit_extract_sha | xargs -I% git show --color=always % | _forgit_show_page
|
||||
echo "$1" | cut -f2- | _forgit_extract_sha | xargs -I% git show --color=always % | $_forgit_show_pager
|
||||
}
|
||||
|
||||
_forgit_cherry_pick() {
|
||||
|
|
@ -626,7 +585,7 @@ _forgit_file_preview() {
|
|||
local sha
|
||||
sha=$(echo "$1" | _forgit_extract_sha)
|
||||
shift
|
||||
echo "$sha" | xargs -I% git show --color=always % -- "$@" | _forgit_show_page
|
||||
echo "$sha" | xargs -I% git show --color=always % -- "$@" | $_forgit_show_pager
|
||||
}
|
||||
|
||||
_forgit_fixup() {
|
||||
|
|
@ -659,7 +618,7 @@ _forgit_fixup() {
|
|||
}
|
||||
|
||||
_forgit_checkout_file_preview() {
|
||||
git diff --color=always -- "$1" | _forgit_diff_page
|
||||
git diff --color=always -- "$1" | $_forgit_diff_pager
|
||||
}
|
||||
|
||||
_forgit_git_checkout_file() {
|
||||
|
|
@ -753,7 +712,7 @@ _forgit_checkout_tag() {
|
|||
}
|
||||
|
||||
_forgit_checkout_commit_preview() {
|
||||
echo "$1" | _forgit_extract_sha | xargs -I% git show --color=always % | _forgit_show_page
|
||||
echo "$1" | _forgit_extract_sha | xargs -I% git show --color=always % | $_forgit_show_pager
|
||||
}
|
||||
|
||||
_forgit_git_checkout_commit() {
|
||||
|
|
@ -820,7 +779,7 @@ _forgit_revert_preview() {
|
|||
cut -f2- |
|
||||
_forgit_extract_sha |
|
||||
xargs -I% git show --color=always % |
|
||||
_forgit_show_page
|
||||
$_forgit_show_pager
|
||||
}
|
||||
|
||||
_forgit_git_revert() {
|
||||
|
|
@ -869,7 +828,7 @@ _forgit_blame_preview() {
|
|||
if _forgit_is_file_tracked "$1"; then
|
||||
_forgit_blame_git_opts=()
|
||||
_forgit_parse_array _forgit_blame_git_opts "$FORGIT_BLAME_GIT_OPTS"
|
||||
git blame "$@" "${_forgit_blame_git_opts[@]}" --date=short | _forgit_blame_page
|
||||
git blame "$@" "${_forgit_blame_git_opts[@]}" --date=short | $_forgit_blame_pager
|
||||
else
|
||||
echo "File not tracked"
|
||||
fi
|
||||
|
|
@ -908,19 +867,7 @@ export FORGIT_GI_REPO_LOCAL="${FORGIT_GI_REPO_LOCAL:-${XDG_CACHE_HOME:-$HOME/.ca
|
|||
export FORGIT_GI_TEMPLATES=${FORGIT_GI_TEMPLATES:-$FORGIT_GI_REPO_LOCAL/templates}
|
||||
|
||||
_forgit_ignore_preview() {
|
||||
files=()
|
||||
files=( "$FORGIT_GI_TEMPLATES/$1"{,.gitignore} )
|
||||
if [[ -n $FORGIT_IGNORE_PAGER ]]; then
|
||||
quoted_files=()
|
||||
for file in "${files[@]}"; do
|
||||
quoted_files+=("'$file'")
|
||||
done
|
||||
eval "$FORGIT_IGNORE_PAGER ${quoted_files[*]}" 2> /dev/null
|
||||
elif hash bat &> /dev/null; then
|
||||
bat -l gitignore --color=always "${files[@]}" 2>/dev/null
|
||||
else
|
||||
cat "${files[@]}" 2> /dev/null
|
||||
fi
|
||||
$_forgit_ignore_pager "$FORGIT_GI_TEMPLATES/$1"{,.gitignore} 2>/dev/null
|
||||
}
|
||||
|
||||
_forgit_ignore() {
|
||||
|
|
@ -1014,7 +961,6 @@ private_commands=(
|
|||
"diff_view"
|
||||
"edit_diffed_file"
|
||||
"edit_add_file"
|
||||
"enter_page"
|
||||
)
|
||||
|
||||
cmd="$1"
|
||||
|
|
|
|||
Loading…
Reference in a new issue