require 'formula' class Nagios < Formula homepage 'http://www.nagios.org/' url 'http://downloads.sourceforge.net/project/nagios/nagios-3.x/nagios-3.4.3/nagios-3.4.3.tar.gz' sha1 '3e9b73b9e219829ec4dca6ffe44106401d430ad3' depends_on 'gd' depends_on 'nagios-plugins' depends_on :libpng def nagios_sbin; prefix+'cgi-bin'; end def nagios_etc; etc+'nagios'; end def nagios_var; var+'lib/nagios'; end def htdocs; share+'nagios/htdocs'; end def user; `id -un`.chomp; end def group; `id -gn`.chomp; end def install system "./configure", "--disable-debug", "--disable-dependency-tracking", "--prefix=#{prefix}", "--sbindir=#{nagios_sbin}", "--sysconfdir=#{nagios_etc}", "--localstatedir=#{nagios_var}", "--datadir=#{htdocs}", "--libexecdir=#{HOMEBREW_PREFIX}/sbin", # Plugin dir "--with-cgiurl=/nagios/cgi-bin", "--with-htmurl=/nagios", "--with-nagios-user=#{user}", "--with-nagios-group=#{group}", "--with-command-user=#{user}", "--with-command-group=_www", "--with-httpd-conf=#{share}" system "make all" system "make install" # Install config system "make install-config" system "make install-webconf" mkdir HOMEBREW_PREFIX+'var/lib/nagios/rw' unless File.exists? HOMEBREW_PREFIX+'var/lib/nagios/rw' end plist_options :startup => true, :manual => "nagios #{HOMEBREW_PREFIX}/etc/nagios.cfg" def plist; <<-EOS.undent KeepAlive Label #{plist_name} ProgramArguments #{opt_prefix}/bin/nagios #{nagios_etc}/nagios.cfg RunAtLoad StandardErrorPath /dev/null StandardOutPath /dev/null UserName #{user} EOS end def caveats; <<-EOS.undent First we need to create a command dir using superhuman powers: mkdir -p #{nagios_var}/rw sudo chgrp _www #{nagios_var}/rw sudo chmod 2775 #{nagios_var}/rw Then install the Nagios web frontend into Apple's build-in Apache: 1) Turn on Personal Web Sharing. 2) Load the php module by patching /etc/apache2/httpd.conf: -#LoadModule php5_module libexec/apache2/libphp5.so +LoadModule php5_module libexec/apache2/libphp5.so 3) Symlink the sample config and create your web account: sudo ln -sf #{share}/nagios.conf /etc/apache2/other/ htpasswd -cs #{nagios_etc}/htpasswd.users nagiosadmin sudo apachectl restart Log in with your web account (and don't forget to RTFM :-) open http://localhost/nagios EOS end end