require 'formula' class Nagios < Formula homepage 'http://www.nagios.org/' url 'http://downloads.sourceforge.net/project/nagios/nagios-3.x/nagios-3.4.1/nagios-3.4.1.tar.gz' sha1 '728d3a7f601cfbc0686afa27cb02a2cb212cc5ac' 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" (share+plist_path).write startup_plist mkdir HOMEBREW_PREFIX+'var/lib/nagios/rw' unless File.exists? HOMEBREW_PREFIX+'var/lib/nagios/rw' end def startup_plist <<-EOS.undent KeepAlive Label #{plist_name} ProgramArguments #{HOMEBREW_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 If you want to run nagios automatically at startup: sudo cp #{share}/#{plist_path.basename} /Library/LaunchDaemons/ sudo launchctl load -w /Library/LaunchDaemons/#{plist_path.basename} ...or simply run it on demand: nagios #{nagios_etc}/nagios.cfg Now log in with your web account (and don't forget to RTFM :-) open http://localhost/nagios EOS end end