class Prestosql < Formula desc "Distributed SQL query engine for big data" homepage "https://prestosql.io" url "https://search.maven.org/remotecontent?filepath=io/prestosql/presto-server/327/presto-server-327.tar.gz" sha256 "59c9a2742970d9ed6ef7f684d070809e4d740722dafb8351a5aac24225f26213" bottle :unneeded depends_on :java => "1.8+" conflicts_with "prestodb", :because => "both install `presto` and `presto-server` binaries" resource "presto-cli" do url "https://search.maven.org/remotecontent?filepath=io/prestosql/presto-cli/327/presto-cli-327-executable.jar" sha256 "14ee0ecde8343d947c8c7473e81c3bc1f451722b9ab7d107c16718e0fa0ded29" end def install libexec.install Dir["*"] (libexec/"etc/node.properties").write <<~EOS node.environment=dev node.id=dev node.data-dir=#{var}/presto/data EOS (libexec/"etc/jvm.config").write <<~EOS -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+ExplicitGCInvokesConcurrent -XX:+ExitOnOutOfMemoryError -Djdk.attach.allowAttachSelf=true EOS (libexec/"etc/config.properties").write <<~EOS coordinator=true node-scheduler.include-coordinator=true http-server.http.port=8080 query.max-memory=1GB query.max-memory-per-node=1GB discovery-server.enabled=true discovery.uri=http://localhost:8080 EOS (libexec/"etc/log.properties").write <<~EOS io.prestosql=INFO EOS (libexec/"etc/catalog/jmx.properties").write <<~EOS connector.name=jmx EOS (bin/"presto-server").write <<~EOS #!/bin/bash exec "#{libexec}/bin/launcher" "$@" EOS resource("presto-cli").stage do bin.install "presto-cli-#{version}-executable.jar" => "presto" end end def post_install (var/"presto/data").mkpath end def caveats; <<~EOS Add connectors to #{opt_libexec}/etc/catalog/. See: https://prestosql.io/docs/current/connector.html EOS end plist_options :manual => "presto-server run" def plist; <<~EOS Label #{plist_name} RunAtLoad AbandonProcessGroup WorkingDirectory #{opt_libexec} ProgramArguments #{opt_bin}/presto-server run EOS end test do system bin/"presto-server", "run", "--help" assert_match "Presto CLI #{version}", shell_output("#{bin}/presto --version").chomp end end