class Dpl::Providers::Engineyard
Public Instance Methods
deploy()
click to toggle source
# File lib/dpl/providers/engineyard.rb, line 54 def deploy shell :deploy end
login()
click to toggle source
# File lib/dpl/providers/engineyard.rb, line 44 def login api_key? ? write_rc : authenticate info :authenticated, name: whoami end
validate()
click to toggle source
# File lib/dpl/providers/engineyard.rb, line 49 def validate error :invalid_migrate if invalid_migrate? env end
Private Instance Methods
authenticate()
click to toggle source
# File lib/dpl/providers/engineyard.rb, line 60 def authenticate shell :login, echo: false, capture: true end
deploy_opts()
click to toggle source
# File lib/dpl/providers/engineyard.rb, line 77 def deploy_opts opts = [%(--ref="#{git_sha}" --environment="#{env}")] opts << opts_for(%i[app account]) opts << migrate_opt opts.join(' ') end
detect_env(envs)
click to toggle source
# File lib/dpl/providers/engineyard.rb, line 92 def detect_env(envs) case envs.size when 1 then envs.first[:name] when 0 then error :no_env else too_many_envs(envs) end end
env()
click to toggle source
Calls superclass method
# File lib/dpl/providers/engineyard.rb, line 88 def env @env ||= super || detect_env(envs) end
envs()
click to toggle source
# File lib/dpl/providers/engineyard.rb, line 100 def envs lines = shell(:envs, echo: false, capture: true).split("\n")[2..] || [] envs = lines.map { |line| line.split('|')[1..].map(&:strip) } envs = envs.map { |pair| %i[name account].zip(pair).to_h } envs.select { |env| env[:name] == opts[:env] } if env? envs end
invalid_migrate?()
click to toggle source
# File lib/dpl/providers/engineyard.rb, line 73 def invalid_migrate? migrate.is_a?(TrueClass) || migrate == 'true' end
migrate_opt()
click to toggle source
# File lib/dpl/providers/engineyard.rb, line 84 def migrate_opt migrate? ? opts_for(%i[migrate]) : '--no-migrate' end
too_many_envs(envs)
click to toggle source
# File lib/dpl/providers/engineyard.rb, line 108 def too_many_envs(envs) envs = envs.map { |env| msg(:env_entry) % env.values_at(:name, :account) } error msg(:too_many_envs) % envs.join(', ') end
whoami()
click to toggle source
# File lib/dpl/providers/engineyard.rb, line 64 def whoami shell(:whoami, echo: false, capture: true) =~ /email\s*:\s*"(.+)"/ && ::Regexp.last_match(1) end
write_rc()
click to toggle source
# File lib/dpl/providers/engineyard.rb, line 68 def write_rc info :write_rc write_file '~/.ey-core', "https://api.engineyard.com/: #{api_key}" end