lib/pave/files.rb in pave-0.14.2 vs lib/pave/files.rb in pave-0.15.0
- old
+ new
@@ -9,27 +9,87 @@
def self.flags
" -uazh -e ssh --progress "
end
def self.clear_cache
- sh "rm -rf ./files/tmp/*; rm -rf ./files/cache/*;"
+ say "Clearing Cache"
+ sh "sudo rm -rf ./files/tmp; sudo rm -rf ./files/cache;"
end
- def self.push(remote="live")
+ def self.push(remote="live", method="zip")
server = Pave::Remote.server(remote)
directory = Pave::Remote.directory(remote)
- sh "rsync #{flags} #{exclusions} ./files/* #{server}:#{directory}/files/*"
+ clear_cache
+ if method == "rsync"
+ sh "rsync #{flags} #{exclusions} ./files/* #{server}:#{directory}/files/*"
+ else
+ zip_files('local')
+ say "Pushing zip to remote server"
+ sh "scp ./tmp_files_zip_local.zip #{remote_url}"
+ if backup_files('remote', remote)
+ if unzip_files('remote', remote)
+ remove_zipped_files
+ end
+ end
+ say "Done"
+ end
end
- def self.pull(remote="live")
+ def self.pull(remote="live", method="zip")
server = Pave::Remote.server(remote)
directory = Pave::Remote.directory(remote)
- sh "rsync #{flags} #{exclusions} #{server}:#{directory}/files/* ./files/*"
clear_cache
+ if method == "rsync"
+ sh "rsync #{flags} #{exclusions} #{server}:#{directory}/files/* ./files/*"
+ else
+ if backup_files('local')
+ if backup_files('remote', remote)
+ say "Downloading zip from remote server"
+ sh "scp #{remote_url}/tmp_files_zip_remote.zip ./"
+ if unzip_files('local')
+ remove_zipped_files
+ end
+ end
+ end
+ end
end
def self.sync(remote="live")
pull(remote)
push(remote)
+ end
+
+ def self.zip_files(location="local")
+ say "Zipping local files"
+ sh "zip -9 -r tmp_files_zip_#{location}.zip ./files"
+ end
+
+ def self.backup_files(location="local", remote)
+ if location == "local"
+ zip_files('local')
+ else
+ server = Pave::Remote.server(remote)
+ directory = Pave::Remote.directory(remote)
+ sh "ssh #{server} \"cd #{directory}; zip -9 -r tmp_files_zip_remote.zip ./files\""
+ end
+ end
+
+ def self.unzip_files(location="local", remote)
+ if location == "local"
+ sh "rm -rf ./files; unzip tmp_files_zip_remote.zip"
+ else
+ server = Pave::Remote.server(remote)
+ directory = Pave::Remote.directory(remote)
+ sh "ssh #{server} \"cd #{directory}; rm -rf files/; unzip tmp_files_zip_local.zip\""
+ end
+ end
+
+ def self.remove_zipped_files
+ say "Cleaning up"
+ sh "rm -rf tmp_files_zip_local.zip; rm -rf tmp_files_zip_remote.zip"
+ end
+
+ def self.remote_url(remote="live")
+ "#{Pave::Remote.server(remote)}:#{Pave::Remote.directory(remote)}"
end
end
end