class Dep < Formula desc "Go dependency management tool" homepage "https://github.com/golang/dep" url "https://github.com/golang/dep/archive/v0.4.1.tar.gz" sha256 "df9b050bf4dbb2a8cf04372097a68b04a6ae1986ed7c5086914ac86d74ea9d49" head "https://github.com/golang/dep.git" bottle do cellar :any_skip_relocation sha256 "6ab292e258ddccd5e8e48fbcc6750fd82a9e90b0335e46e9cdb2c709f513e27b" => :high_sierra sha256 "d4bbf1b701893f5d58dfa98a491f2cf724e5c011a8fbdd1c4d296182f54bd549" => :sierra sha256 "db62f2dcc22cd9f87c9bef938b44d349f53dfeaf90ad989ff4bb26524d1c32ca" => :el_capitan end depends_on "go" def install ENV["GOPATH"] = buildpath (buildpath/"src/github.com/golang/dep").install buildpath.children cd "src/github.com/golang/dep" do system "go", "build", "-o", bin/"dep", "-ldflags", "-X main.version=#{version}", ".../cmd/dep" prefix.install_metafiles end end test do # Default HOMEBREW_TEMP is /tmp, which is actually a symlink to /private/tmp. # `dep` bails without `.realpath` as it expects $GOPATH to be a "real" path. ENV["GOPATH"] = testpath.realpath project = testpath/"src/github.com/project/testing" (project/"hello.go").write <<~EOS package main import "fmt" import "github.com/Masterminds/vcs" func main() { fmt.Println("Hello World") } EOS cd project do system bin/"dep", "init" assert_predicate project/"vendor", :exist?, "Failed to init!" inreplace "Gopkg.toml", /(version = ).*/, "\\1\"=1.11.0\"" system bin/"dep", "ensure" assert_match "795e20f90", (project/"Gopkg.lock").read output = shell_output("#{bin}/dep status") assert_match %r{github.com/Masterminds/vcs\s+1.11.0\s}, output end end end