require 'brewkit' class Mysql "http://gist.github.com/raw/179616/bcbc9f185bbd353934c9379a253d23269c65170e/Diff"} end def install ENV['CXXFLAGS'] = ENV['CXXFLAGS'].gsub "-fomit-frame-pointer", "" ENV['CXXFLAGS'] += " -fno-omit-frame-pointer -felide-constructors" configure_args = [ "--without-bench", "--without-docs", "--without-debug", "--disable-dependency-tracking", "--prefix=#{prefix}", "--localstatedir=#{var}", "--with-plugins=innobase,myisam", "--with-extra-charsets=complex", "--with-plugins=innobase,myisam", "--with-ssl", "--enable-assembler", "--enable-thread-safe-client", "--enable-local-infile", "--enable-shared"] configure_args << "--without-server" if ARGV.include? '--client-only' system "./configure", *configure_args system "make install" # Why does sql-bench still get built w/ above options? (prefix+'sql-bench').rmtree unless ARGV.include? '--with-bench' # save 66MB! (prefix+'mysql-test').rmtree unless ARGV.include? '--with-tests' var.mkpath (prefix+'com.mysql.mysqld.plist').write startup_plist end def caveats puts "Set up databases with `mysql_install_db`" puts "Automatically load on login with " puts " `launchctl load -w #{prefix}/com.mysql.mysqld.plist`" end def startup_plist return <<-EOPLIST KeepAlive Label com.mysql.mysqld Program #{bin}/mysqld_safe RunAtLoad UserName #{`whoami`} WorkingDirectory /usr/local EOPLIST end end