aboutsummaryrefslogtreecommitdiff
path: root/powerlevel9k.zsh-theme
diff options
context:
space:
mode:
Diffstat (limited to 'powerlevel9k.zsh-theme')
-rwxr-xr-xpowerlevel9k.zsh-theme30
1 files changed, 27 insertions, 3 deletions
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index faa3c156..8d00f448 100755
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -1171,11 +1171,35 @@ prompt_load() {
################################################################
# Segment to diplay Node version
+set_default P9K_NODE_VERSION_PROJECT_ONLY false
prompt_node_version() {
- local node_version=$(node -v 2>/dev/null)
- [[ -z "${node_version}" ]] && return
+ if [ "$P9K_NODE_VERSION_PROJECT_ONLY" = true ] ; then
+ local foundProject=false # Variable to stop searching if a project is found
+ local currentDir=$(pwd) # Variable to iterate through the path ancestry tree
+
+ # Search as long as no project could been found or until the root directory
+ # has been reached
+ while [ "$foundProject" = false -a ! "$currentDir" = "/" ] ; do
+
+ # Check if directory contains a project description
+ if [[ -e "$currentDir/package.json" ]] ; then
+ foundProject=true
+ break
+ fi
+ # Go to the parent directory
+ currentDir="$(dirname "$currentDir")"
+ done
+ fi
- "$1_prompt_segment" "$0" "$2" "green" "white" 'NODE_ICON' 0 '' "${${node_version:1}//\%/%%}"
+ # Show version if a project has been found, or set to always show
+ if [ "$P9K_NODE_VERSION_PROJECT_ONLY" != true -o "$foundProject" = true ] ; then
+ # Get the node version
+ local node_version=$(node -v 2>/dev/null)
+
+ # Return if node is not installed
+ [[ -z "${node_version}" ]] && return
+ "$1_prompt_segment" "$0" "$2" "green" "white" 'NODE_ICON' 0 '' "${${node_version:1}//\%/%%}"
+ fi
}
################################################################