Module: Astrails::Safe

Defined in:
lib/astrails/safe.rb,
lib/astrails/safe/s3.rb,
lib/astrails/safe/gpg.rb,
lib/astrails/safe/gzip.rb,
lib/astrails/safe/pipe.rb,
lib/astrails/safe/sftp.rb,
lib/astrails/safe/sink.rb,
lib/astrails/safe/local.rb,
lib/astrails/safe/multi.rb,
lib/astrails/safe/backup.rb,
lib/astrails/safe/pgdump.rb,
lib/astrails/safe/source.rb,
lib/astrails/safe/stream.rb,
lib/astrails/safe/archive.rb,
lib/astrails/safe/svndump.rb,
lib/astrails/safe/tmp_file.rb,
lib/astrails/safe/mysqldump.rb,
lib/astrails/safe/config/node.rb,
lib/astrails/safe/mongodbdump.rb,
lib/astrails/safe/config/builder.rb

Defined Under Namespace

Modules: Config, TmpFile Classes: Archive, Backup, Gpg, Gzip, Local, Mongodbdump, Multi, Mysqldump, Pgdump, Pipe, S3, Sftp, Sink, Source, Stream, Svndump

Constant Summary collapse

ROOT =
File.join(File.dirname(__FILE__), "..", "..")

Class Method Summary collapse

Class Method Details

.safe(&block) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/astrails/safe.rb', line 41

def safe(&block)
  config = Config::Node.new(&block)
  #config.dump
  
  [[Mysqldump,   [:mysqldump,   :databases]],
   [Mongodbdump, [:mongodbdump, :databases]],
   [Pgdump,      [:pgdump,      :databases]],
   [Archive,     [:tar,         :archives]],
   [Svndump,     [:svndump,     :repos]]
  ].each do |klass, path|
    if collection = config[*path]
      collection.each do |name, config|
        klass.new(name, config).backup.run(config, :multi, :gpg, :gzip, :local, :s3, :sftp)
      end
    end
  end

  Astrails::Safe::TmpFile.cleanup
end