nodez.theme.bash
1 # Author: Michael Bradley (https://github.com/michaelsbradleyjr) 2 # Based on the zork theme: 3 # https://github.com/Bash-it/bash-it/blob/master/themes/zork/zork.theme.bash 4 5 SCM_THEME_PROMPT_PREFIX="" 6 SCM_THEME_PROMPT_SUFFIX="" 7 8 SCM_THEME_PROMPT_DIRTY=" ${bold_red}✗${normal}" 9 SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓${normal}" 10 SCM_GIT_CHAR="${bold_green}±${normal}" 11 SCM_SVN_CHAR="${bold_cyan}⑆${normal}" 12 SCM_HG_CHAR="${bold_red}☿${normal}" 13 14 __nodez_char_node="${bold_green}🄽 ${normal}" 15 __nodez_char_npm=📦 16 17 __nodez_ne() { 18 local env= 19 if [[ -v NVM_DIR ]]; then 20 env="nvm" 21 fi 22 if [[ -v NODE_VIRTUAL_ENV ]]; then 23 env="${NODE_VIRTUAL_ENV##*/}" 24 fi 25 if [[ "$env" != "" ]]; then 26 env="[${bold_yellow}$env${normal}" 27 if [[ ! -v NODE_VERSION ]]; then 28 env+="]" 29 fi 30 echo "$env" 31 fi 32 } 33 34 __nodez_nv() { 35 if [[ -v NODE_VERSION ]]; then 36 local nv="=${__nodez_char_node}${NODE_VERSION}" 37 local npm_version=$(npm --version) 38 if [[ "$npm_version" != "$NPM_VERSION" ]]; then 39 export NPM_VERSION=$npm_version 40 fi 41 nv+="${__nodez_char_npm}${NPM_VERSION}]" 42 echo "$nv" 43 fi 44 } 45 46 __nodez_scm_prompt() { 47 [[ $(scm_char) != $SCM_NONE_CHAR ]] \ 48 && echo "[$(scm_char)][$(scm_prompt_info)]" 49 } 50 51 case $TERM in 52 xterm*) 53 __nodez_title="\[\033]0;\w\007\]" ;; 54 *) 55 __nodez_title="" ;; 56 esac 57 58 __nodez_ve(){ 59 [[ -n "$VIRTUAL_ENV" ]] \ 60 && echo "(${bold_purple}${VIRTUAL_ENV##*/}${normal})" 61 } 62 63 prompt() { 64 local host="${green}\h${normal}"; 65 PS1="${__nodez_title}┌─" 66 PS1+="$(__nodez_ve)" 67 PS1+="[$host]" 68 PS1+="$(__nodez_ne)$(__nodez_nv)" 69 PS1+="$(__nodez_scm_prompt)" 70 PS1+="[${cyan}\\w${normal}]" 71 PS1+=" 72 └─▪ " 73 } 74 75 PS2="└─▪ " 76 PS3=">> " 77 78 safe_append_prompt_command prompt