Sha256: d726b4e80f7797cf902f2312df54c09f295260075be177c99c9cc9f621f873d5
Contents?: true
Size: 1.71 KB
Versions: 2
Compression:
Stored size: 1.71 KB
Contents
# frozen_string_literal: true module Backup module Storage class Local < Base include Storage::Cycler class Error < Backup::Error; end def initialize(model, storage_id = nil) super @path ||= "~/backups" end private def transfer! FileUtils.mkdir_p(remote_path) transfer_method = package_movable? ? :mv : :cp package.filenames.each do |filename| src = File.join(Config.tmp_path, filename) dest = File.join(remote_path, filename) Logger.info "Storing '#{dest}'..." FileUtils.send(transfer_method, src, dest) end end # Called by the Cycler. # Any error raised will be logged as a warning. def remove!(package) Logger.info "Removing backup package dated #{package.time}..." FileUtils.rm_r(remote_path_for(package)) end # expanded since this is a local path def remote_path(pkg = package) File.expand_path(super) end alias remote_path_for remote_path ## # If this Local Storage is not the last Storage for the Model, # force the transfer to use a *copy* operation and issue a warning. def package_movable? if self == model.storages.last true else Logger.warn Error.new(<<-EOS) Local File Copy Warning! The final backup file(s) for '#{model.label}' (#{model.trigger}) will be *copied* to '#{remote_path}' To avoid this, when using more than one Storage, the 'Local' Storage should be added *last* so the files may be *moved* to their destination. EOS false end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
backupii-0.1.0.pre.alpha.2 | lib/backup/storage/local.rb |
backupii-0.1.0.pre.alpha.1 | lib/backup/storage/local.rb |