test existence, not symlink
authorErich Smith <heartquest@gmail.com>
Wed, 16 May 2012 17:00:22 +0000 (13:00 -0400)
committerErich Smith <heartquest@gmail.com>
Wed, 16 May 2012 17:00:22 +0000 (13:00 -0400)
it isn't safe to assume that symlinks created in the enabled/* dirs will
be symlinks later...

some users use tools like Dropbox to sync their files across systems,
and these may transform symlinks into regular files.  explicitly
checking for symlinks with tests like [ -h $file ] will break on these
systems.  these tests have been replaced with [ -e $file ] instead.

lib/helpers.bash
plugins/available/z.plugin.bash

index ad0cfd6..d0c16b8 100644 (file)
@@ -39,7 +39,7 @@ bash-it-plugins ()
     printf "%-20s%-10s%s\n" 'Plugin' 'Enabled?' 'Description'
     for f in $BASH_IT/plugins/available/*.bash
     do
-        if [ -h $BASH_IT/plugins/enabled/$(basename $f) ]; then
+        if [ -e $BASH_IT/plugins/enabled/$(basename $f) ]; then
             enabled='x'
         else
             enabled=' '
@@ -69,7 +69,7 @@ disable-plugin ()
         for f in $BASH_IT/plugins/available/*.bash
         do
             plugin=$(basename $f)
-            if [ -h $BASH_IT/plugins/enabled/$plugin ]; then
+            if [ -e $BASH_IT/plugins/enabled/$plugin ]; then
                 rm $BASH_IT/plugins/enabled/$(basename $plugin)
             fi
         done
@@ -114,7 +114,7 @@ enable-plugin ()
         fi
 
         plugin=$(basename $plugin)
-        if [ -h $BASH_IT/plugins/enabled/$plugin ]; then
+        if [ -e $BASH_IT/plugins/enabled/$plugin ]; then
             printf '%s\n' "$1 is already enabled."
             return
         fi
index 14a6543..6653575 100644 (file)
@@ -15,7 +15,7 @@ about-plugin '                              z is DEPRECATED, use fasd instead'
 #   * z -t foo  # goes to most recently accessed dir matching foo
 #   * z -l foo  # list all dirs matching foo (by frecency)
 
-if [ -h $BASH_IT/plugins/enabled/fasd.plugin.bash ]; then
+if [ -e $BASH_IT/plugins/enabled/fasd.plugin.bash ]; then
     printf '%s\n' 'sorry, the z plugin is incompatible with the fasd plugin. you may use either, but not both.'
     return
 fi