aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula/cdargs.rb
blob: e35f83dac4151a70d47ea3af36999150678c60e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
require 'formula'

class Cdargs < Formula
  url 'http://www.skamphausen.de/downloads/cdargs/cdargs-1.35.tar.gz'
  homepage 'http://www.skamphausen.de/cgi-bin/ska/CDargs'
  md5 '50be618d67f0b9f2439526193c69c567'

  fails_with_llvm "Bus error in ld on SL 10.6.4"

  # fixes zsh usage using the patch provided at the cdargs homepage
  # (See http://www.skamphausen.de/cgi-bin/ska/CDargs)
  def patches
    DATA
  end

  def install
    system "./configure", "--prefix=#{prefix}", "--mandir=#{man}"
    system "make"
    system "make install-strip"

    rm Dir['contrib/Makefile*']
    prefix.install 'contrib'

    (etc+'bash_completion.d').mkpath
    ln_sf prefix+'contrib/cdargs-bash.sh', etc+'bash_completion.d/cdargs-bash.sh'
  end

  def caveats; <<-EOS.undent
      Support files for bash, tcsh and emacs are located in:
        #{prefix}/contrib

      The file for bash is also symlinked to:
        #{etc}/bash_completion.d/cdargs-bash.sh

      Source it from your .bash_profile or .bashrc to get nice aliases and bash completion.

      For zsh use the bash script.

      Consult the cdargs man page for more details and instructions.
    EOS
  end
end


__END__
diff --git a/contrib/cdargs-bash.sh b/contrib/cdargs-bash.sh
index 8a197ef..f3da067 100644
--- a/contrib/cdargs-bash.sh
+++ b/contrib/cdargs-bash.sh
@@ -11,6 +11,12 @@
 CDARGS_SORT=0   # set to 1 if you want mark to sort the list
 CDARGS_NODUPS=1 # set to 1 if you want mark to delete dups
 
+# Support ZSH via its BASH completion emulation
+if [ -n "$ZSH_VERSION" ]; then
+	autoload bashcompinit
+	bashcompinit
+fi
+
 # --------------------------------------------- #
 # Run the cdargs program to get the target      #
 # directory to be used in the various context   #
@@ -166,7 +172,7 @@ function mark ()
     local tmpfile
 
     # first clear any bookmarks with this same alias, if file exists
-    if [[ "$CDARGS_NODUPS" && -e "$HOME/.cdargs" ]]; then
+    if [ "$CDARGS_NODUPS" ] && [ -e "$HOME/.cdargs" ]; then
         tmpfile=`echo ${TEMP:-${TMPDIR:-/tmp}} | sed -e "s/\\/$//"`
         tmpfile=$tmpfile/cdargs.$USER.$$.$RANDOM
         grep -v "^$1 " "$HOME/.cdargs" > $tmpfile && 'mv' -f $tmpfile "$HOME/.cdargs";