aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula/clojure.rb
blob: 7b665849f5ca130e67153d27e2254f2cfd03721e (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
require 'formula'

class Clojure < Formula
  homepage 'http://clojure.org/'
  url 'http://repo1.maven.org/maven2/org/clojure/clojure/1.5.1/clojure-1.5.1.zip'
  sha1 '90d09dff6e6ded4382d06ff3b3ab03be471fcab2'

  head 'https://github.com/clojure/clojure.git'

  depends_on 'rlwrap' => :optional

  def script
    if build.with? 'rlwrap'
      rlwrap = "rlwrap "
    else
      rlwrap = ""
    end
    <<-EOS.undent
      #!/bin/sh
      # Clojure wrapper script.
      # With no arguments runs Clojure's REPL.

      # Put the Clojure jar from the cellar and the current folder in the classpath.
      CLOJURE=$CLASSPATH:#{prefix}/#{jar}:${PWD}

      if [ "$#" -eq 0 ]; then
          #{rlwrap}java -cp "$CLOJURE" clojure.main --repl
      else
          java -cp "$CLOJURE" clojure.main "$@"
      fi
    EOS
  end

  def jar
    "clojure-#{version}.jar"
  end

  def install
    system "ant" if build.head?
    prefix.install jar
    (prefix+jar).chmod(0644) # otherwise it's 0600
    (prefix+'classes').mkpath
    (bin+'clj').write script
  end

  def test
    system "#{bin}/clj", "-e", '(println "Hello World")'
  end
end