homebrew-core/Formula/i2p.rb

39 lines
1.2 KiB
Ruby
Raw Normal View History

class I2p < Formula
desc "I2P is an anonymous overlay network - a network within a network"
homepage "https://geti2p.net"
url "https://download.i2p2.de/releases/0.9.21/i2pinstall_0.9.21.jar"
sha256 "0238ffc6ea44099ef4fe6c20913cb4eec675c2760aea07dfe7d499addcc89cf2"
depends_on :java => "1.6+"
def install
(buildpath/"path.conf").write "INSTALL_PATH=#{libexec}"
system "java", "-jar", "i2pinstall_#{version}.jar", "-options", "path.conf"
wrapper_name = "i2psvc-macosx-universal-#{MacOS.prefer_64_bit? ? 64 : 32}"
libexec.install_symlink libexec/wrapper_name => "i2psvc"
bin.write_exec_script Dir["#{libexec}/{eepget,i2prouter}"]
man1.install Dir["#{libexec}/man/*"]
end
test do
wrapper_pid = fork do
exec "#{bin}/i2prouter console"
end
router_pid = 0
sleep 5
begin
status = shell_output("#{bin}/i2prouter status")
assert_match(/I2P Service is running/, status)
/PID:(\d+)/ =~ status
router_pid = Regexp.last_match(1)
ensure
Process.kill("SIGINT", router_pid.to_i) unless router_pid.nil?
Process.kill("SIGINT", wrapper_pid)
Process.wait(wrapper_pid)
end
end
end