require "language/go" class Pond < Formula desc "Forward secure, asynchronous messaging" homepage "https://github.com/agl/pond" url "https://github.com/agl/pond/archive/v0.1.1.tar.gz" sha256 "f66c625b0d7e3fe8c125fe9401a5f67ec75af3e8dca47e18fba6696a99705b21" revision 1 head "https://github.com/agl/pond.git" bottle do cellar :any_skip_relocation sha256 "34b97915fcd76ce703b553c8d9d9b4f49496d92d1521d63fbce60727d7549e3d" => :high_sierra sha256 "c3a9d860ba4b3f50e9cd4443fe2c2a771e8cfdd8229ff4c6f458275a814586e1" => :sierra sha256 "cd448860e0b4f71aa4aa2cbc22dadae2316586cbf1b5fb244e0bdae3ae23466b" => :el_capitan sha256 "b4d45b73fb1907ed48b18e8411aed6c743dfe44dbdcb6a2b53d177da7d7950a2" => :yosemite sha256 "d7917560397ee4fac80c68e8fa2005704e1ad9095f74ea2cbca5e11b66b20a7c" => :mavericks end option "with-gui", "Additionally build the gtk+3 GUI of pond" depends_on "go" => :build depends_on "tor" => :recommended if build.with? "gui" depends_on "gtk+3" depends_on "gtkspell3" end go_resource "github.com/agl/ed25519" do url "https://github.com/agl/ed25519.git", :revision => "278e1ec8e8a6e017cd07577924d6766039146ced" end go_resource "github.com/agl/pond" do url "https://github.com/agl/pond.git", :revision => "bce6e0dc61803c23699c749e29a83f81da3c41b2" end go_resource "github.com/golang/protobuf" do url "https://github.com/golang/protobuf.git", :revision => "68415e7123da32b07eab49c96d2c4d6158360e9b" end go_resource "github.com/agl/go-gtk" do url "https://github.com/agl/go-gtk.git", :revision => "91c1edb38c241d73129e6b098ca1c9fa83abfc15" end go_resource "golang.org/x/crypto" do url "https://go.googlesource.com/crypto.git", :revision => "7b85b097bf7527677d54d3220065e966a0e3b613" end go_resource "golang.org/x/net" do url "https://go.googlesource.com/net.git", :revision => "72b0708b72ac7a531f8e89f370e6214aad23ee2e" end def install ENV["GOPATH"] = buildpath Language::Go.stage_deps resources, buildpath/"src" if build.with? "gui" system "go", "build", "-o", bin/"pond", "./client" else system "go", "build", "-tags", "nogui", "-o", bin/"pond", "./client" end end def caveats s = "" if build.without? "tor" s += <<~EOS Pond requires Tor to be installed and running for usage. If you do not wish to use Homebrew's Tor you can install and run the Tor Browser Bundle. Pond will refuse to load successfully without Tor. EOS end s end test do # Pond requires Tor to be running and configured a certain way. # Without that, this is a basic check to verify the command runs. assert_match %r{Usage of #{bin}/pond}, shell_output("#{bin}/pond -cli -h 2>&1", 2) end end