lib/cap_ext_webistrano/task.rb in mattmatt-cap-ext-webistrano-0.0.4 vs lib/cap_ext_webistrano/task.rb in mattmatt-cap-ext-webistrano-0.1.0
- old
+ new
@@ -2,26 +2,46 @@
require 'cap_ext_webistrano/stage'
require 'cap_ext_webistrano/deployment'
module CapExtWebistrano
class Task
- attr_accessor :task
+ attr_accessor :task, :log
def initialize(task, config)
@task = task
@config = config
+ @log = ""
end
def set_access_data
[Project, Stage, Deployment].each do |klazz|
klazz.configure(@config)
end
end
+ def loop_latest_deployment
+ still_running = true
+ while still_running
+ sleep 5
+ @deployment = Deployment.find(@deployment.id, :params => {:project_id => @project.id, :stage_id => @stage.id})
+ print_diff(@deployment)
+ still_running = false unless @deployment.completed_at.nil?
+ end
+ end
+
+ def print_diff(deployment)
+ if deployment.log
+ diff = deployment.log.sub(log, "")
+ print diff
+ log << diff
+ end
+ end
+
def run
set_access_data
- project = Project.find_by_name(@config[:application])
- stage = project.find_stage(@config[:stage])
- Deployment.create(:task => task, :stage_id => stage.id, :project_id => project.id)
+ @project = Project.find_by_name(@config[:application])
+ @stage = @project.find_stage(@config[:stage])
+ @deployment = Deployment.create(:task => task, :stage_id => @stage.id, :project_id => @project.id)
+ loop_latest_deployment
end
end
end
\ No newline at end of file