class Artifactory < Formula desc "Manages binaries" homepage "https://www.jfrog.com/artifactory/" url "https://dl.bintray.com/jfrog/artifactory/jfrog-artifactory-oss-6.21.0.zip" sha256 "b009cd8f1b4b07111c138172fcadfd89c559285b57dcb558baf1140351ee8ea8" livecheck do url "https://dl.bintray.com/jfrog/artifactory/" regex(/href=.*?jfrog-artifactory-oss[._-]v?(\d+(?:\.\d+)+)\.zip/i) end bottle :unneeded depends_on "openjdk" def install # Remove Windows binaries rm_f Dir["bin/*.bat"] rm_f Dir["bin/*.exe"] # Set correct working directory inreplace "bin/artifactory.sh", 'export ARTIFACTORY_HOME="$(cd "$(dirname "${artBinDir}")" && pwd)"', "export ARTIFACTORY_HOME=#{libexec}" libexec.install Dir["*"] # Launch Script bin.install libexec/"bin/artifactory.sh" # Memory Options bin.install libexec/"bin/artifactory.default" bin.env_script_all_files libexec/"bin", JAVA_HOME: Formula["openjdk"].opt_prefix end def post_install # Create persistent data directory. Artifactory heavily relies on the data # directory being directly under ARTIFACTORY_HOME. # Therefore, we symlink the data dir to var. data = var/"artifactory" data.mkpath libexec.install_symlink data => "data" end plist_options manual: "#{HOMEBREW_PREFIX}/opt/artifactory/libexec/bin/artifactory.sh" def plist <<~EOS Label com.jfrog.artifactory WorkingDirectory #{libexec} Program #{bin}/artifactory.sh KeepAlive EOS end test do assert_match "Checking arguments to Artifactory", pipe_output("#{bin}/artifactory.sh check") end end