# Given the path to a .git directory this function prints a human-readable name # for the git action in progress (e.g. "merge") or returns 1. function fish_print_git_action --argument-names git_dir if test -z "$git_dir" if not command -sq git return 1 end if not set git_dir (command git rev-parse --git-dir 2>/dev/null) return 1 end end for action_dir in "$git_dir/rebase-apply" "$git_dir/rebase" if test -d "$action_dir" if test -f "$action_dir/rebasing" echo -n 'rebase' else if test -f "$action_dir/applying" echo -n 'apply' else echo -n 'rebase/apply' end return 0 end end for action_dir in "$git_dir/rebase-merge/interactive" "$git_dir/.dotest-merge/interactive" if test -f "$action_dir" echo -n 'rebase-interactive' return 0 end end for action_dir in "$git_dir/rebase-merge" "$git_dir/.dotest-merge" if test -d "$action_dir" echo -n 'rebase-merge' return 0 end end if test -f "$git_dir/MERGE_HEAD" echo -n 'merge' return 0 end if test -f "$git_dir/CHERRY_PICK_HEAD" if test -d "$git_dir/sequencer" cherry_pick_sequence_formatted='cherry-pick-sequence' echo -n 'cherry-pick-sequence' else cherry_pick_formatted='cherry-pick' echo -n 'cherry-pick' end return 0 end if test -f "$git_dir/REVERT_HEAD" if test -d "$git_dir/sequencer" echo -n 'revert-sequence' else echo -n 'revert' end return 0 end if test -f "$git_dir/BISECT_LOG" echo -n 'bisect' return 0 end return 1 end