diff options
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Formula/artifactory.rb | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/Library/Formula/artifactory.rb b/Library/Formula/artifactory.rb new file mode 100644 index 000000000..8650886e1 --- /dev/null +++ b/Library/Formula/artifactory.rb @@ -0,0 +1,80 @@ +require 'formula' + +class Artifactory < Formula + homepage 'http://www.jfrog.com/artifactory/' + url 'http://dl.bintray.com/jfrog/artifactory/artifactory-3.3.1.zip' + sha1 '0829582f6d754f4de06fe8b97f0f14bff29e150b' + + depends_on :java => '1.7' + + option 'with-low-heap', 'Run artifactory with low Java memory options. Useful for development machines. Do not use in production.' + option 'with-java8', 'Adjust memory settings for Java 8' + + 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}" + + # Remove obsolete parameters for Java 8 + inreplace 'bin/artifactory.default', + '-server -Xms512m -Xmx2g -Xss256k -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+UseG1GC', + '-server -Xms512m -Xmx2g -Xss256k -XX:+UseG1GC' if build.with? 'java8' + + # Reduce memory consumption for non production use + inreplace 'bin/artifactory.default', + '-server -Xms512m -Xmx2g', + '-Xms128m -Xmx768m' if build.with? 'low-heap' + + libexec.install Dir['*'] + + # Launch Script + bin.install_symlink libexec/'bin/artifactory.sh' + # Memory Options + bin.install_symlink libexec/'bin/artifactory.default' + end + + + def post_install + # Create persistent data directory. Artifactory heavily relies on the data + # directory being directly under ARTIFACTORY_HOME. + # Therefore, I 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.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>Label</key> + <string>com.jfrog.artifactory</string> + + <key>WorkingDirectory</key> + <string>#{libexec}</string> + + <key>Program</key> + <string>bin/artifactory.sh</string> + + <key>KeepAlive</key> + <true/> + </dict> + </plist> + EOS + end + + test do + output = `#{bin}/artifactory.sh check 2>&1` + assert output.include?("Checking arguments to Artifactory") + assert_equal 1, $?.exitstatus + end +end |
