<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>server/files/usr/local/ec2onrails/bin/backup_dir.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -2,11 +2,11 @@
 
 Gem::Specification.new do |s|
   s.name = %q{ec2onrails}
-  s.version = &quot;0.9.10&quot;
+  s.version = &quot;0.9.11&quot;
 
   s.required_rubygems_version = Gem::Requirement.new(&quot;&gt;= 1.2&quot;) if s.respond_to? :required_rubygems_version=
   s.authors = [&quot;Paul Dowman, Adam Greene&quot;]
-  s.date = %q{2009-03-16}
+  s.date = %q{2009-04-23}
   s.description = %q{Client-side libraries (Capistrano tasks) for managing and  deploying to EC2 on Rails servers.}
   s.email = %q{paul@pauldowman.com}
   s.extra_rdoc_files = [&quot;CHANGELOG&quot;, &quot;lib/ec2onrails/capistrano_utils.rb&quot;, &quot;lib/ec2onrails/recipes/db.rb&quot;, &quot;lib/ec2onrails/recipes/deploy.rb&quot;, &quot;lib/ec2onrails/recipes/server.rb&quot;, &quot;lib/ec2onrails/recipes.rb&quot;, &quot;lib/ec2onrails/version.rb&quot;, &quot;lib/ec2onrails.rb&quot;, &quot;README.textile&quot;]</diff>
      <filename>ec2onrails.gemspec</filename>
    </modified>
    <modified>
      <diff>@@ -19,3 +19,6 @@
 # Check if the hostname has been updated every 15 minutes.
 # This can happen if the user associated or disassociated an Elastic IP
 12,27,42,57 * * * * root /usr/local/ec2onrails/bin/update_hostname
+
+
+</diff>
      <filename>server/files/etc/cron.d/ec2onrails</filename>
    </modified>
    <modified>
      <diff>@@ -26,6 +26,7 @@ require &quot;#{File.dirname(__FILE__)}/aws_helper&quot;
 
 module Ec2onrails
   class S3Helper
+    SCRATCH_SPACE = '/mnt/tmp'
 
     # make attributes available for specs
     attr_accessor :bucket
@@ -63,6 +64,27 @@ module Ec2onrails
       create_bucket
       AWS::S3::S3Object.store(s3_key(file), open(file), @bucket)
     end
+    
+    def store_dir(dir, options={})
+      FileUtils.mkdir_p SCRATCH_SPACE
+      create_bucket
+      compress = options[:compress]
+      exclude  = options[:exclude]
+      
+      #should be of the format:
+      # mnt-app-shared_ec2-75-101-250-19__20090217-183411.tgz
+      archive_nm = &quot;#{Ec2onrails::Utils.hostname}__#{Time.new.strftime('%Y%m%d-%H%M%S')}&quot;
+      archive_nm += compress ? &quot;.tgz&quot; : 'tar'  
+      cmd = &quot;cd #{SCRATCH_SPACE} &amp;&amp; tar -cph&quot;
+      cmd += 'z' if compress
+      cmd += &quot;f #{archive_nm} -C / #{dir[1..-1]} &quot;
+      cmd += &quot; --exclude=#{exclude} &quot;
+      system(cmd)
+      file = &quot;#{SCRATCH_SPACE}/#{archive_nm}&quot;
+      AWS::S3::S3Object.store(s3_key(archive_nm), open(file), @bucket)
+    ensure
+      system &quot;nice -n 15 rm -f #{file}&quot; 
+    end      
 
     def retrieve_file(file)
       key = s3_key(file)</diff>
      <filename>server/files/usr/local/ec2onrails/lib/s3_helper.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>3f68f0137785454334331267bed0cfa81e7d0fc3</id>
    </parent>
  </parents>
  <author>
    <name>Adam Greene</name>
    <email>adam@6bar8.com</email>
  </author>
  <url>http://github.com/skippy/ec2onrails/commit/d4b248e24479457764a1ec9dbba157b1aebcccc8</url>
  <id>d4b248e24479457764a1ec9dbba157b1aebcccc8</id>
  <committed-date>2009-05-20T06:30:01-07:00</committed-date>
  <authored-date>2009-05-20T06:30:01-07:00</authored-date>
  <message>allow us to backup a directory; we have the database being backed up, but what about local files that are outside version control, like user's mugshots.

NOTE: right now, 'tar' is following symlinks.  I'll probably need to change this as it is grabbing too much, but testing it for now.

bumping up the version</message>
  <tree>3f794f41eed94910595486226ea37b4592a74c74</tree>
  <committer>
    <name>Adam Greene</name>
    <email>adam@6bar8.com</email>
  </committer>
</commit>
