Sha256: e67eb54c0b3f77fb188d6d14ac9555a2b9af3b39f61a264911034c10bf04ddf6
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
module EY class Task attr_reader :config alias :c :config def initialize(conf) @config = conf @roles = :all end def require_custom_tasks deploy_file = ["config/eydeploy.rb", "eydeploy.rb"].map do |short_file| File.join(c.repository_cache, short_file) end.detect do |file| File.exist?(file) end if deploy_file puts "~> Loading deployment task overrides from #{deploy_file}" instance_eval(File.read(deploy_file)) true else false end end def roles(*task_roles) raise "Roles must be passed a block" unless block_given? begin @roles = task_roles yield ensure @roles = :all end end def run(cmd) run_on_roles { prepare_run cmd } end def sudo(cmd) run_on_roles { prepare_sudo cmd } end def prepare_run(command) Escape.shell_command ["sh", "-l", "-c", command] end def prepare_sudo(command) Escape.shell_command ["sudo", "sh", "-l", "-c", command] end private def run_on_roles cmd = yield EY::Server.from_roles(@roles).inject(false) do |acc, server| failure = !server.run(cmd) acc || failure end && raise(EY::RemoteFailure) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ey-deploy-0.4.1 | lib/ey-deploy/task.rb |