From 4413d172822ab0cefff06df703299c0e3d4fd806 Mon Sep 17 00:00:00 2001 From: nirenjan Date: Tue, 19 Feb 2013 15:14:12 -0800 Subject: [PATCH] Fix smartwd script to ensure that it always works With Ruby version 1.8.5, the smartwd script would abort with an error that the shift method would take no arguments. Therefore, I have restricted the use of the script to ruby version 1.8.7 and above. On older versions, it will simply behave the same as \w in PS1 of bash. --- scripts/smartwd | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/scripts/smartwd b/scripts/smartwd index b28529d..2a59afa 100755 --- a/scripts/smartwd +++ b/scripts/smartwd @@ -3,12 +3,22 @@ # Script to smartly chop off portions of the current working directory for # use in the shell prompt +# Some of the methods don't work with Ruby versions older than 1.8.7 +min_release = "1.8.7 (2008-08-11)" +ruby_release = "#{RUBY_VERSION} (#{RUBY_RELEASE_DATE})" + # Constants used to decide when to start chopping DIRLIM = 5 DIR_L = 3 DIR_R = 2 PWDLEN = 14 +def backslash_w + homedir = ENV['HOME'] + pwd = ENV['PWD'] + print pwd.gsub(homedir, '~') +end + def smartwd username = ENV['USER'] homedir = ENV['HOME'] @@ -51,5 +61,9 @@ def smartwd print pwd end -smartwd +if (ruby_release < min_release) + backslash_w +else + smartwd +end