go.rb 1.59 KB
Newer Older
mrzmmr@gmail.com's avatar
mrzmmr@gmail.com committed
1 2 3
require 'package'

class Go < Package
4 5
  description 'Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.'
  homepage 'https://golang.org/'
6 7
  version '1.8.3'
  source_url 'https://storage.googleapis.com/golang/go1.8.3.src.tar.gz'
8 9
  source_sha256 '5f5dea2447e7dcfdc50fa6b94c512e58bfba5673c039259fd843f68829d99fa6'

10 11
  # Tests requires perl
  depends_on 'perl'
12
  # go is required to build versions of go > 1.4
13
  unless File.exist? "#{CREW_PREFIX}/lib/go/bin/go"
14 15
    depends_on 'go_bootstrap'
  end
mrzmmr@gmail.com's avatar
mrzmmr@gmail.com committed
16 17

  def self.build
18
    FileUtils.cd('src') do
19
      # install with go_bootstrap if go is not in the path
20 21 22
      unless File.exist? "#{CREW_PREFIX}/lib/go/bin/go"
        system "GOROOT_BOOTSTRAP=#{CREW_PREFIX}/lib/go_bootstrap/go \
                TMPDIR=#{CREW_PREFIX}/tmp \
23 24
                ./make.bash"
      else
25 26
        system "GOROOT_BOOTSTRAP=#{CREW_PREFIX}/lib/go \
                TMPDIR=#{CREW_PREFIX}/tmp ./make.bash"
27
      end
28
    end
mrzmmr@gmail.com's avatar
mrzmmr@gmail.com committed
29
  end
30

mrzmmr@gmail.com's avatar
mrzmmr@gmail.com committed
31
  def self.install
32
    dest = "#{CREW_DEST_DIR}#{CREW_PREFIX}/lib/"
33
    system "mkdir", "-p", dest
34
    FileUtils.cp_r Dir.pwd, dest
35

mrzmmr@gmail.com's avatar
mrzmmr@gmail.com committed
36
    puts "--------"
37
    puts "Installed Go for #{ARCH} in #{CREW_PREFIX}/lib/go"
38 39
    puts "Make sure to set go environment variables."
    puts "Minimal:"
40
    puts "\texport GOROOT=#{CREW_PREFIX}/lib/go"
41
    puts "\texport PATH=$PATH:$GOROOT/bin"
42 43 44 45 46 47 48 49
    puts "To use `go run`:"
    puts "\texport TMPDIR=#{CREW_PREFIX}/tmp"
  end

  def self.check
    FileUtils.cd('src') do
      system "PATH=\"#{Dir.pwd}/../bin:$PATH\" TMPDIR=\"#{CREW_PREFIX}/tmp\" go tool dist test"
    end
mrzmmr@gmail.com's avatar
mrzmmr@gmail.com committed
50 51
  end
end