class Questdb < Formula
  desc "Time Series Database"
  homepage "https://www.questdb.org"
  url "https://www.questdb.org/download/questdb-1.0.2-bin.tar.gz"
  sha256 "7521d2cf7c61f26181503342b076fe9ea4d2fafa221655d4c35e195cb0c2d3f4"

  bottle :unneeded

  depends_on :java => "1.7+"

  def install
    rm_rf "questdb.exe"
    libexec.install Dir["*"]
    bin.install_symlink "#{libexec}/questdb.sh" => "questdb"
  end

  plist_options :manual => "questdb start"

  def plist; <<-EOS.undent
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
      <dict>
        <key>KeepAlive</key>
        <dict>
          <key>SuccessfulExit</key>
          <false/>
        </dict>
        <key>Label</key>
        <string>#{plist_name}</string>
        <key>ProgramArguments</key>
        <array>
          <string>#{opt_bin}/questdb</string>
          <string>start</string>
          <string>-d</string>
          <string>var/"questdb"</string>
          <string>-n</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>WorkingDirectory</key>
        <string>#{var}/questdb</string>
        <key>StandardErrorPath</key>
        <string>#{var}/log/questdb.log</string>
        <key>StandardOutPath</key>
        <string>#{var}/log/questdb.log</string>
        <key>SoftResourceLimits</key>
        <dict>
          <key>NumberOfFiles</key>
          <integer>1024</integer>
        </dict>
      </dict>
    </plist>
    EOS
  end

  test do
    mkdir_p testpath/"data"
    begin
      fork do
        exec "#{bin}/questdb start -d  #{testpath}/data"
      end
      sleep 2
      output = shell_output("curl -Is localhost:9000/js?q=x")
      sleep 1
      assert_match /questDB/, output
    ensure
      system "#{bin}/questdb", "stop"
    end
  end
end