From 48e6e5edccf353989775d82bdfcfdd77a83f1b1f Mon Sep 17 00:00:00 2001 From: nirenjan Date: Thu, 14 Feb 2013 14:11:12 -0800 Subject: [PATCH] Fix smartwd script and update PS1 in bashrc.common --- bash/bashrc.common | 4 ++-- scripts/smartwd | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/bash/bashrc.common b/bash/bashrc.common index 97ebd0e..2a30d52 100644 --- a/bash/bashrc.common +++ b/bash/bashrc.common @@ -10,9 +10,9 @@ add_to_path() { # @github:git/git/contrib/completion/git_prompt.sh if [ -f $HOME/.git_prompt.sh ]; then source $HOME/.git_prompt.sh - export PS1='\e[34m\u@\h \e[0m[\e[32m\w$(__git_ps1 " \e[33m(%s)")\e[0m] ' + export PS1='\e[34m\u@\h \e[0m[\e[32m$(smartwd)$(__git_ps1 " \e[33m(%s)")\e[0m] ' else - export PS1='\e[34m\u@\h \e[0m[\e[32m\w\e[0m] ' + export PS1='\e[34m\u@\h \e[0m[\e[32m$(smartwd)\e[0m] ' fi # Add $HOME/bin to PATH diff --git a/scripts/smartwd b/scripts/smartwd index dad6c30..b28529d 100755 --- a/scripts/smartwd +++ b/scripts/smartwd @@ -4,7 +4,9 @@ # use in the shell prompt # Constants used to decide when to start chopping -DIRLIM = 4 +DIRLIM = 5 +DIR_L = 3 +DIR_R = 2 PWDLEN = 14 def smartwd @@ -13,7 +15,6 @@ def smartwd pwd = ENV['PWD'] path = pwd.split('/') - #pwd = pwd.gsub(homedir, '~') # Ignore the root path if (path.length > 0) @@ -36,9 +37,18 @@ def smartwd prefix = path.shift(2).join('/') path.unshift(prefix) end + + # Check to make sure that both the DIRLIM and PWDLEN constraints + # are met before splitting + pwd = path.join('/') + if path.length > DIRLIM and pwd.length > PWDLEN + pwd_l = path.shift(DIR_L).join('/') + pwd_r = path.pop(DIR_R).join('/') + pwd = pwd_l + '/.../' + pwd_r + end end - puts username, homedir, pwd, prefix.inspect, path.inspect + print pwd end smartwd