Formula/kibana-full.rb (53 lines of code) (raw):
class KibanaFull < Formula
desc "Analytics and search dashboard for Elasticsearch"
homepage "https://www.elastic.co/products/kibana"
url "https://artifacts.elastic.co/downloads/kibana/kibana-7.17.4-darwin-x86_64.tar.gz?tap=elastic/homebrew-tap"
version "7.17.4"
sha256 "ac2b5a639ad83431db25e4161f811111d45db052eb845091e18f847016a34a55"
conflicts_with "kibana"
def install
libexec.install(
"bin",
"config",
"data",
"node",
"node_modules",
"package.json",
"plugins",
"src",
"x-pack",
)
Pathname.glob(libexec/"bin/*") do |f|
next if f.directory?
bin.install libexec/"bin"/f
end
bin.env_script_all_files(libexec/"bin", { "KIBANA_PATH_CONF" => etc/"kibana", "DATA_PATH" => var/"lib/kibana/data" })
cd libexec do
packaged_config = IO.read "config/kibana.yml"
IO.write "config/kibana.yml", "path.data: #{var}/lib/kibana/data\n" + packaged_config
(etc/"kibana").install Dir["config/*"]
rm_rf "config"
rm_rf "data"
end
end
def post_install
(var/"lib/kibana/data").mkpath
(prefix/"plugins").mkdir
end
def caveats; <<~EOS
Config: #{etc}/kibana/
If you wish to preserve your plugins upon upgrade, make a copy of
#{opt_prefix}/plugins before upgrading, and copy it into the
new keg location after upgrading.
EOS
end
service do
run [opt_bin/"kibana"]
working_dir var
log_path var/"log/kibana.log"
error_log_path var/"log/kibana.log"
end
test do
ENV["BABEL_CACHE_PATH"] = testpath/".babelcache.json"
assert_match /#{version}/, shell_output("#{bin}/kibana -V")
end
end