class Palisade::Backup
Public Class Methods
backup()
click to toggle source
# File lib/palisade/backup.rb, line 10 def self.backup Palisade::Backup.new.backup end
new()
click to toggle source
# File lib/palisade/backup.rb, line 7 def initialize end
Public Instance Methods
backup()
click to toggle source
# File lib/palisade/backup.rb, line 14 def backup do_the_backup end
Private Instance Methods
config()
click to toggle source
# File lib/palisade/backup.rb, line 92 def config @config ||= load_config['config'] end
config_file()
click to toggle source
—————————————— Configuration / Options
# File lib/palisade/backup.rb, line 84 def config_file @config_file ||= "#{`echo $HOME`.strip}/.palisade/config.yml" end
daystamp()
click to toggle source
# File lib/palisade/backup.rb, line 108 def daystamp @daystamp ||= Time.now.strftime('%d') end
db_dir(name)
click to toggle source
# File lib/palisade/backup.rb, line 56 def db_dir(name) "#{project_dir(name)}/db" end
dest_root()
click to toggle source
# File lib/palisade/backup.rb, line 100 def dest_root @dest_root ||= config['root'] end
do_the_backup()
click to toggle source
# File lib/palisade/backup.rb, line 20 def do_the_backup projects.each do |name, config| verify_project_dir(name) if config['db'] verify_db_dir(name) rsync(config['db'], db_dir(name)) end config['assets'].each do |asset_name, data| method = data['method'] method = 'rsync' if method.nil? || method == '' case method when 'rsync' rsync(data['route'], project_dir(name)) when 's3cmd' verify_s3_dir(name, asset_name) s3cmd(data['route'], s3_dir(name, asset_name), data['config']) end end end end
load_config()
click to toggle source
# File lib/palisade/backup.rb, line 88 def load_config @load_config ||= YAML.load_file(config_file) end
project_dir(name)
click to toggle source
—————————————— Directory Management
# File lib/palisade/backup.rb, line 52 def project_dir(name) "#{dest_root}/#{name}" end
projects()
click to toggle source
# File lib/palisade/backup.rb, line 96 def projects @projects ||= load_config['projects'] end
rsync(src, dest)
click to toggle source
# File lib/palisade/backup.rb, line 41 def rsync(src, dest) system("rsync #{rsync_options} #{src} #{dest}") end
rsync_options()
click to toggle source
# File lib/palisade/backup.rb, line 104 def rsync_options @rsync_options ||= '-chavz --stats' end
s3_dir(name, asset_name)
click to toggle source
# File lib/palisade/backup.rb, line 60 def s3_dir(name, asset_name) "#{project_dir(name)}/#{asset_name}" end
s3cmd(src, dest, config = nil)
click to toggle source
# File lib/palisade/backup.rb, line 45 def s3cmd(src, dest, config = nil) config = "-c #{config}" unless config.nil? system("s3cmd get -vr --skip-existing #{config} s3://#{src}/ #{dest}") end
verify_db_dir(name)
click to toggle source
# File lib/palisade/backup.rb, line 70 def verify_db_dir(name) unless Dir.exists?(db_dir(name)) FileUtils.mkdir_p(db_dir(name)) end end
verify_project_dir(name)
click to toggle source
# File lib/palisade/backup.rb, line 64 def verify_project_dir(name) unless Dir.exists?(project_dir(name)) FileUtils.mkdir_p(project_dir(name)) end end
verify_s3_dir(name, asset_name)
click to toggle source
# File lib/palisade/backup.rb, line 76 def verify_s3_dir(name, asset_name) unless Dir.exists?(s3_dir(name, asset_name)) FileUtils.mkdir_p(s3_dir(name, asset_name)) end end