90 lines
2.7 KiB
Ruby
90 lines
2.7 KiB
Ruby
require "formula"
|
|
require "language/go"
|
|
|
|
class Pup < Formula
|
|
homepage "https://github.com/EricChiang/pup"
|
|
url "https://github.com/EricChiang/pup/archive/v0.3.2.tar.gz"
|
|
sha1 "a3d4a624368678845e9d081abd1f5906656781dd"
|
|
|
|
head "https://github.com/EricChiang/pup.git"
|
|
|
|
bottle do
|
|
cellar :any
|
|
sha1 "2738ba14aef491fc87d760edf1fbf23374cdf751" => :yosemite
|
|
sha1 "db1dd87b6484c1f446882cd06636a6a6a6c8e89a" => :mavericks
|
|
sha1 "f33ec888512347b9a12bdc19b365a4a81c04508a" => :mountain_lion
|
|
end
|
|
|
|
depends_on "go" => :build
|
|
|
|
# required by gox
|
|
go_resource "github.com/mitchellh/iochan" do
|
|
url "https://github.com/mitchellh/iochan.git",
|
|
:revision => "b584a329b193e206025682ae6c10cdbe03b0cd77"
|
|
end
|
|
|
|
go_resource "github.com/mitchellh/gox" do
|
|
url "https://github.com/mitchellh/gox.git", :tag => "v0.3.0"
|
|
end
|
|
|
|
# discovered via
|
|
# find . -name "*.go" -exec head -20 "{}" ";" | grep ".*\..*/" | sort | uniq
|
|
go_resource "github.com/fatih/color" do
|
|
url "git://github.com/fatih/color.git",
|
|
# this was just the `master` at the time of this Formula
|
|
:revision => "3161cccfa22c6243e02aa984cf2886d022024cec"
|
|
end
|
|
go_resource "github.com/mattn/go-colorable" do
|
|
url "git://github.com/mattn/go-colorable.git",
|
|
# this was just the `master` at the time of this Formula
|
|
:revision => "043ae16291351db8465272edf465c9f388161627"
|
|
end
|
|
go_resource "code.google.com/p/go.net" do
|
|
url "https://code.google.com/p/go.net/",
|
|
# this was just the `tip` at the time of this Formula
|
|
:revision => "b39f3d42a398493ea477d6aa63ae43d818d1f78a",
|
|
:using => :hg
|
|
end
|
|
go_resource "code.google.com/p/go.text" do
|
|
url "https://code.google.com/p/go.text/",
|
|
# this was just the `tip` at the time of this Formula
|
|
:revision => "1ac75970ff9e986010d3d7d8549f1863951a9839",
|
|
:using => :hg
|
|
end
|
|
|
|
def install
|
|
# For the gox buildtool
|
|
ENV.append_path "PATH", buildpath
|
|
|
|
# fake our install so gox will see it
|
|
repo_dir = homepage.downcase.gsub /^https:../, ""
|
|
my_pkg = buildpath / "src/#{repo_dir}"
|
|
prefix.install "LICENSE"
|
|
my_pkg.install Dir["*"]
|
|
|
|
Language::Go.stage_deps resources, buildpath / "src"
|
|
|
|
ENV["GOPATH"] = buildpath
|
|
cd "src/github.com/mitchellh/gox" do
|
|
system "go", "build"
|
|
buildpath.install "gox"
|
|
end
|
|
|
|
cd my_pkg do
|
|
mkdir "bin"
|
|
arch = MacOS.prefer_64_bit? ? "amd64" : "386"
|
|
system "gox", "-arch", arch,
|
|
"-os", "darwin",
|
|
"-output", "bin/pup-{{.Dir}}",
|
|
"./..."
|
|
bin.install "bin/pup-pup" => "pup"
|
|
# regrettably, there is no manual :-(
|
|
end
|
|
end
|
|
|
|
test do
|
|
expected = %{Hello}
|
|
actual = %x{echo "<body><p>Hello</p></body>" | pup p "text{}"}.strip
|
|
assert_equal expected, actual
|
|
end
|
|
end
|