Posterous theme by Cory Watilo

FAM and Gamin

Вчера потратил немного времени и произвел скрипт-демон для отлова изменений в указанной папке. Но вот работает связка только с FAM. А в Linux сейчас уже используется более продвинутый Gamin. Как подружить Ruby с Gamin? Собссно, сам демон: [cc lang="ruby"] #!/usr/bin/ruby # load the fam bindings require 'fam' require 'logger' require 'rubygems' require 'daemons' my_path = Dir.pwd monitored_path = Dir.pwd + '/monitored/' Daemons.daemonize #Daemons.daemonize :ontop => true # For debugging purposes. Doesn't detach. logger = Logger.new my_path + '/dirmon.log' logger.level = Logger::INFO unless test ?d, monitored_path log_file.write 'ERROR: Specified directory does not exist.' exit 1 end pid = File.new(my_path + '/dirmon.pid',"w") pid.write Process.pid pid.close Dir.chdir(my_path) # open a connection to FAM and start monitoring specified path fam = Fam::Connection.new fam.monitor_dir monitored_path logger.info "Fam connected" while true # if there are fam events pending, then process them if fam.pending? ev = fam.next_event case ev.code when Fam::Event::CHANGED logger.info 'File changed: ' + ev.file when Fam::Event::DELETED logger.info 'File deleted: ' + ev.file when Fam::Event::CREATED logger.info 'File created: ' + ev.file end end end [/cc]
| Viewed
times
Filed under: