class OfflineDeployer::Updater
Constants
- EXTRACT_DIRECTORY
Attributes
zip_file[R]
Public Class Methods
new(zip_file)
click to toggle source
# File lib/offline_deployer/updater.rb, line 3 def initialize(zip_file) @zip_file = zip_file end
Public Instance Methods
call()
click to toggle source
# File lib/offline_deployer/updater.rb, line 11 def call validate_zip_file remove_old_update_files extract_new_version validate_version update_changed_files remove_deleted_files run_update_script finish_and_restart_server end
Private Instance Methods
extract_new_version()
click to toggle source
# File lib/offline_deployer/updater.rb, line 32 def extract_new_version `echo 'Extracting zip' >> log/update.log` Archive::Zip.extract(zip_file.path, EXTRACT_DIRECTORY) end
finish_and_restart_server()
click to toggle source
# File lib/offline_deployer/updater.rb, line 67 def finish_and_restart_server `cp #{EXTRACT_DIRECTORY}/.update ./.update` `#{OfflineDeployer.settings.restart_server_command}` `echo 'Server restarted' >> log/update.log` end
new_version_info()
click to toggle source
# File lib/offline_deployer/updater.rb, line 41 def new_version_info YAML.load_file(File.join(EXTRACT_DIRECTORY, '.update')) end
old_version_info()
click to toggle source
# File lib/offline_deployer/updater.rb, line 37 def old_version_info YAML.load_file('.update') end
remove_deleted_files()
click to toggle source
# File lib/offline_deployer/updater.rb, line 55 def remove_deleted_files deleted_files = new_version_info[:DELETED_FILES] return if deleted_files.nil? deleted_files.each { |deleted_file| `rm #{deleted_file}` } end
remove_old_update_files()
click to toggle source
# File lib/offline_deployer/updater.rb, line 28 def remove_old_update_files FileUtils.remove_dir(EXTRACT_DIRECTORY) if File.exist?(EXTRACT_DIRECTORY) end
run_update_script()
click to toggle source
# File lib/offline_deployer/updater.rb, line 61 def run_update_script `./update_script.sh` errors = File.open('log/update_error.log').read fail 'There were some errors while running the script!' if errors.present? end
update_changed_files()
click to toggle source
# File lib/offline_deployer/updater.rb, line 51 def update_changed_files `rsync -r -v #{EXTRACT_DIRECTORY}/* ./ >> log/update.log` end
validate_version()
click to toggle source
# File lib/offline_deployer/updater.rb, line 45 def validate_version return if old_version_info[:TO_VERSION] == new_version_info[:FROM_VERSION] `echo 'Wrong version' >> log/update.log` fail 'Wrong version' end
validate_zip_file()
click to toggle source
# File lib/offline_deployer/updater.rb, line 24 def validate_zip_file fail 'Invalid file' if File.extname(zip_file.original_filename) != '.zip' end