Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
This paste will be private.
#!/usr/bin/env ruby # Erik Kastner - git-r-up.rb # daemon to watch for changes in a directory and sync them to a directory under source control (like rails + git) # also adds and commits files to git (just git init in the FETCH_ROOT) require 'rubygems' require 'simple-daemon' require 'git' require 'syslog' PUBLIC_ROOT = "/u/apps/app/current/public" FETCH_ROOT = "/home/app/website" def log(msg); Syslog.open($0, Syslog::LOG_PID | Syslog::LOG_CONS) { |s| s.debug msg }; end class Watcher < SimpleDaemon::Base SimpleDaemon::WORKING_DIRECTORY = "/tmp/git-watcher" def self.start log "Starting Watcher" g = Git.open(FETCH_ROOT) loop do unless g.status.untracked.empty? && g.status.changed.empty? log "changed files" begin %x{cp -r #{FETCH_ROOT}/* #{PUBLIC_ROOT}} g.add g.commit("auto from watcher") rescue => e log e.inspect end sleep(7) # give git time to do it's thing end sleep(2) end end def self.end puts "Stopping Watcher" end end Watcher.daemonize
Pasted April 01, 2008 5:05PM EDT
by Erik Kastner (kastner)
Embed