39 lines
1.2 KiB
Ruby
39 lines
1.2 KiB
Ruby
|
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
|