Sha256: c5a269220e6e6b08f6c810246a39bd172d9412223e95fad6800903cf3d7aa6de

Contents?: true

Size: 1.65 KB

Versions: 1

Compression:

Stored size: 1.65 KB

Contents

require 'aws/s3'
require 'cloudfiles'
require 'net/sftp'
# require 'net/ftp'
require 'fileutils'
require 'benchmark'

require 'tempfile'
require 'extensions/mktmpdir'

require 'webtranslateit/safe/tmp_file'

require 'webtranslateit/safe/config/node'
require 'webtranslateit/safe/config/builder'

require 'webtranslateit/safe/stream'

require 'webtranslateit/safe/backup'

require 'webtranslateit/safe/source'
require 'webtranslateit/safe/mysqldump'
require 'webtranslateit/safe/pgdump'
require 'webtranslateit/safe/archive'
require 'webtranslateit/safe/svndump'
require 'webtranslateit/safe/mongodump'

require 'webtranslateit/safe/pipe'
require 'webtranslateit/safe/gpg'
require 'webtranslateit/safe/gzip'

require 'webtranslateit/safe/sink'
require 'webtranslateit/safe/local'
require 'webtranslateit/safe/s3'
require 'webtranslateit/safe/cloudfiles'
require 'webtranslateit/safe/sftp'
require 'webtranslateit/safe/ftp'

module WebTranslateIt
  module Safe
    ROOT = File.join(File.dirname(__FILE__), '..', '..')

    def safe(&block)
      Config::Node.new(&block)
    end

    def process(config)

      [[Mysqldump, [:mysqldump, :databases]],
       [Pgdump,    [:pgdump,    :databases]],
       [Mongodump, [:mongodump, :databases]],
       [Archive,   [:tar,       :archives]],
       [Svndump,   [:svndump,   :repos]]
      ].each do |klass, path|
        if collection = config[*path]
          collection.each do |name, c|
            klass.new(name, c).backup.run(c, :gpg, :gzip, :local, :s3, :cloudfiles, :sftp, :ftp)
          end
        end
      end

      WebTranslateIt::Safe::TmpFile.cleanup
    end
    module_function :safe
    module_function :process
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
webtranslateit-safe-0.4.3 lib/webtranslateit/safe.rb