class Photish::Plugin::Sshdeploy::Deploy
Attributes
config[R]
log[R]
Public Class Methods
new(config, log)
click to toggle source
# File lib/photish/plugin/sshdeploy/deploy.rb, line 5 def initialize(config, log) @config = config @log = log end
Private Class Methods
engine_name()
click to toggle source
# File lib/photish/plugin/sshdeploy/deploy.rb, line 85 def self.engine_name 'ssh' end
is_for?(type)
click to toggle source
# File lib/photish/plugin/sshdeploy/deploy.rb, line 79 def self.is_for?(type) [ Photish::Plugin::Type::Deploy ].include?(type) end
Public Instance Methods
deploy_site()
click to toggle source
# File lib/photish/plugin/sshdeploy/deploy.rb, line 10 def deploy_site log.info "Publishing website to #{host}" log.info "Cleaning temp locations and ensuring directories exist" execute("ssh #{host} -v '" + "mkdir -p #{publish_temp_dir} && " + "rm -rf #{publish_temp_dir}/* && " + "mkdir -p #{upload_temp_dir} && " + "rm -rf #{upload_temp_dir}/*" + "'") log.info "Creating tar gz of photish site" execute("GZIP=-9 tar -zcvf " + "#{output_dir_compress_file} " + "-C #{output_dir_with_base} .") log.info "Uploading site to upload temp location" execute("rsync -v " + "-e 'ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' " + "--progress #{output_dir_compress_file} " + "#{host}:#{upload_temp_dir}") log.info "Extracting site to publish temp location" execute("ssh #{host} -v " + "'tar -zxvf " + "#{upload_temp_dir}/#{output_dir_compress_filename} " + "-C #{publish_temp_dir}'") log.info "Moving publish temp to publish folder" execute("ssh #{host} -v " + "'sudo su #{www_user} bash -c \"" + "mkdir -p #{publish_dir} && " + "rm -rf #{publish_dir}/* && " + "cp -rf #{publish_temp_dir}/* #{publish_dir}\"'") log.info "#{Time.new}: Deployment complete" ensure FileUtils.rm_rf(output_dir_compress_file) end
Private Instance Methods
execute(command)
click to toggle source
# File lib/photish/plugin/sshdeploy/deploy.rb, line 89 def execute(command) log.info "Executing: #{command}" system("#{command}") || exit(1) end
output_dir_compress_file()
click to toggle source
# File lib/photish/plugin/sshdeploy/deploy.rb, line 74 def output_dir_compress_file @output_dir_compress_file ||= File.join(Dir.mktmpdir, output_dir_compress_filename) end
output_dir_compress_filename()
click to toggle source
# File lib/photish/plugin/sshdeploy/deploy.rb, line 70 def output_dir_compress_filename 'output_dir.tar.gz' end
output_dir_with_base()
click to toggle source
# File lib/photish/plugin/sshdeploy/deploy.rb, line 66 def output_dir_with_base File.join([output_dir, url.base].flatten) end