# This is some kind of dark magic.
# I have no memory of whats going on here, but this has been my config since 2015-ish, so it shall not be touched.
# This was origionally written for crosh, so that may be part of the problem...

autoload -U colors && colors
NEWLINE=$'\n'
USER_ICON="$"

# Use colors to signal the current connection / user privs
if [[ $(id -u) = 0 ]]; then
    HOST_COLOR="red"
    USER_ICON="#"
elif [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
    HOST_COLOR="yellow"
elif [ "$EWCONFIG_IN_DOCKER" = "1" ]; then
    HOST_COLOR="blue"
else
    HOST_COLOR="green"
fi

# Clear the prompt
export PROMPT=""

# If we are *NOT* in Termux, show the host and username
if ! command -v termux-setup-storage; then
    export PROMPT="%{$fg[$HOST_COLOR]%}%n@%M "
fi

# Add the common prompt parts
export PROMPT="${PROMPT}%{$fg[cyan]%}%~ ${USER_ICON} %{$reset_color%}"
setopt prompt_subst

# Don't bother rendering VCS info on weak systems. Just fallback to the time and status
if [ -z "$EWCONFIG_IN_ISH" ]; then
    autoload -Uz vcs_info
    zstyle ':vcs_info:*' actionformats \
        '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
    zstyle ':vcs_info:*' formats \
        '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{5}]%f '
    zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'

    zstyle ':vcs_info:*' enable git cvs svn

    # or use pre_cmd, see man zshcontrib
    vcs_info_wrapper() {
        vcs_info
        if [ -n "$vcs_info_msg_0_" ]; then
            echo "%{$fg[grey]%}${vcs_info_msg_0_}%{$reset_color%}$del"
        fi
    }
    export RPROMPT=$'%T $(vcs_info_wrapper)%?'
else
    export RPROMPT=$'%T %?'
fi