diff --git a/bash/super_prompt.sh b/bash/super_prompt.sh index 78f5793..f9a664a 100644 --- a/bash/super_prompt.sh +++ b/bash/super_prompt.sh @@ -2,9 +2,24 @@ # [username@hostname:current_directory] (git_repo|branch) # $ -source ./colorize.sh +src_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +source $src_dir/colorize.sh -function super_prompt { +function sp_git_info { + # Get the current branch name + local git_branch=$(git branch 2>/dev/null | grep "*" | cut -d ' ' -f 2) || "" + + # If we're in a git repo, add the repo (i.e. top-level directory) name, parens, and a newline + if [ "$git_branch" != "" ]; then + local git_repo=$(git rev-parse --show-toplevel) + git_branch=\($(colorize magenta ${git_repo//*\/})"|"$(colorize magenta ${git_branch})\) + printf "%s\n" "$git_branch" + else + printf "" + fi +} + +function sp_path { local git_dir=$(git rev-parse --show-toplevel 2>/dev/null) if [ "$git_dir" != "" ]; then local path=$(colorize green ${PWD//$git_dir/\!}) @@ -12,18 +27,16 @@ function super_prompt { local path=$(colorize green ${PWD//$HOME/\~}) fi - local git_branch=$(git branch 2>/dev/null | grep "*" | cut -d ' ' -f 2) || "" - if [ "$git_branch" != "" ]; then - local git_repo=$(git rev-parse --show-toplevel) - git_branch=\($(colorize magenta ${git_repo//*\/})"|"$(colorize magenta ${git_branch})\) - fi - + printf $path +} + +function super_prompt { local user=$(colorize yellow $(whoami)) local host=$(colorize blue ${HOSTNAME}) local prompt_char=$(colorize red '$') - prompt=$(printf "[%s@%s:%s] %s\n\f\r%s " "$user" "$host" "$path" "$git_branch" "$prompt_char") - echo $prompt + sp_git_info + printf "[%s@%s:%s]\n%s " "$user" "$host" "$(sp_path)" "$prompt_char" } -# export PS1=super_prompt +export PS1="\$(super_prompt)"