| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | local g="$(git rev-parse --git-dir 2>/dev/null)"if [ -n "$g" ]; then  local r  local b  if [ -d "$g/../.dotest" ]  then    if test -f "$g/../.dotest/rebasing"    then      r="|REBASE"    elif test -f "$g/../.dotest/applying"    then      r="|AM"    else      r="|AM/REBASE"    fi    b="$(git symbolic-ref HEAD 2>/dev/null)"  elif [ -f "$g/.dotest-merge/interactive" ]  then    r="|REBASE-i"    b="$(cat "$g/.dotest-merge/head-name")"  elif [ -d "$g/.dotest-merge" ]  then    r="|REBASE-m"    b="$(cat "$g/.dotest-merge/head-name")"  elif [ -f "$g/MERGE_HEAD" ]  then    r="|MERGING"    b="$(git symbolic-ref HEAD 2>/dev/null)"  else    if [ -f "$g/BISECT_LOG" ]    then      r="|BISECTING"    fi    if ! b="$(git symbolic-ref HEAD 2>/dev/null)"    then      if ! b="tag: $(git describe --exact-match HEAD 2>/dev/null)"      then        b="$(cut -c1-7 "$g/HEAD")..."      fi    fi  fi   if [ -n "$1" ]; then    printf "$1" "${b##refs/heads/}$r"  else    printf "[%s]" "${b##refs/heads/}$r"  fifi
 |