require 'formula' class Ddclient < Formula homepage 'http://sourceforge.net/apps/trac/ddclient' url 'http://downloads.sourceforge.net/project/ddclient/ddclient/ddclient-3.8.2/ddclient-3.8.2.tar.bz2' sha1 '8c887c06a580773c48a1eaced82a08c3077e1325' def install # Adjust default paths in script inreplace 'ddclient' do |s| s.gsub! "/etc/ddclient", "#{etc}/ddclient" s.gsub! "/var/cache/ddclient", "#{var}/run/ddclient" end sbin.install "ddclient" # Install sample files inreplace 'sample-ddclient-wrapper.sh', "/etc/ddclient", "#{etc}/ddclient" inreplace 'sample-etc_cron.d_ddclient', "/usr/sbin/ddclient", "#{sbin}/ddclient" inreplace 'sample-etc_ddclient.conf', "/var/run/ddclient.pid", "#{var}/run/ddclient/pid" (share+'doc/ddclient').install %w( sample-ddclient-wrapper.sh sample-etc_cron.d_ddclient sample-etc_ddclient.conf ) # Create etc & var paths (etc+'ddclient').mkpath (var+'run/ddclient').mkpath end def caveats; <<-EOS.undent For ddclient to work, you will need to create a configuration file in #{etc}/ddclient, a sample configuration can be found in #{opt_prefix}/share/doc/ddclient. Note: don't enable daemon mode in the configuration file; see additional information below. The next reboot of the system will automatically start ddclient. You can adjust the execution interval by changing the value of StartInterval (in seconds) in /Library/LaunchDaemons/#{plist_path.basename}, and then EOS end plist_options :startup => true def plist; <<-EOS.undent Label #{plist_name} ProgramArguments #{opt_prefix}/sbin/ddclient -file #{etc}/ddclient/ddclient.conf RunAtLoad StartInterval 300 WatchPaths #{etc}/ddclient WorkingDirectory #{etc}/ddclient EOS end end