lib/shelly/cli/deploys.rb in shelly-0.0.30 vs lib/shelly/cli/deploys.rb in shelly-0.0.31

- old
+ new

@@ -9,12 +9,12 @@ desc "list", "Lists deploy logs" def list(cloud = nil) logged_in? say_error "No Cloudfile found" unless Cloudfile.present? - multiple_clouds(cloud, "deploy list", "Select cloud to view deploy logs using:") - logs = @app.logs + multiple_clouds(cloud, "deploys list", "Select cloud to view deploy logs using:") + logs = @app.deploy_logs unless logs.empty? say "Available deploy logs", :green logs.each do |log| log["failed"] ? say(" * #{log["created_at"]} (failed)") : say(" * #{log["created_at"]}") end @@ -27,8 +27,49 @@ else say_error e.message end end + desc "show LOG", "Show specific deploy log" + def show(log = nil, cloud = nil) + say_error "No Cloudfile found" unless Cloudfile.present? + specify_log(log) + multiple_clouds(cloud, "deploys show #{log}", "Select log and cloud to view deploy logs using:") + content = @app.deploy_log(log) + say "Log for deploy done on #{content["created_at"]}", :green + if content["bundle_install"] + say("Starting bundle install", :green); say(content["bundle_install"]) + end + if content["whenever"] + say("Starting whenever", :green); say(content["whenever"]) + end + if content["callbacks"] + say("Starting callbacks", :green); say(content["callbacks"]) + end + if content["delayed_job"] + say("Starting delayed job", :green); say(content["delayed_job"]) + end + if content["thin_restart"] + say("Starting thin", :green); say(content["thin_restart"]) + end + rescue Client::APIError => e + if e.unauthorized? + say_error "You have no access to '#{@app.code_name}' cloud defined in Cloudfile" + elsif e.message == "Log not found" + say_error "Log not found, list all deploy logs using:", :with_exit => false + say " shelly deploys list #{cloud}" + exit 1 + end + end + + no_tasks do + def specify_log(log) + unless log + say_error "Specify log by passing date value or to see last log use:", :with_exit => false + say " shelly deploys show last" + exit 1 + end + end + end end end end