Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
#!/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
This paste will be private.
From the Design Piracy series on my blog: