class JenkinsLts < Formula desc "Extendable open-source CI server" homepage "https://jenkins.io/index.html#stable" url "http://mirrors.jenkins-ci.org/war-stable/2.60.1/jenkins.war" sha256 "34fde424dde0e050738f5ad1e316d54f741c237bd380bd663a07f96147bb1390" bottle :unneeded depends_on :java => "1.7+" def install system "jar", "xvf", "jenkins.war" libexec.install Dir["jenkins.war", "WEB-INF/jenkins-cli.jar"] bin.write_jar_script libexec/"jenkins.war", "jenkins-lts" bin.write_jar_script libexec/"jenkins-cli.jar", "jenkins-lts-cli" end def caveats; <<-EOS.undent Note: When using launchctl the port will be 8080. EOS end plist_options :manual => "jenkins-lts" def plist; <<-EOS.undent Label #{plist_name} ProgramArguments /usr/bin/java -Dmail.smtp.starttls.enable=true -jar #{opt_libexec}/jenkins.war --httpListenAddress=127.0.0.1 --httpPort=8080 RunAtLoad EOS end test do ENV["JENKINS_HOME"] = testpath ENV.append "_JAVA_OPTIONS", "-Djava.io.tmpdir=#{testpath}" pid = fork do exec "#{bin}/jenkins-lts" end sleep 60 begin output = shell_output("curl localhost:8080/") assert_match(/Welcome to Jenkins!|Unlock Jenkins|Authentication required/, output) ensure Process.kill("SIGINT", pid) Process.wait(pid) end end end