Sha256: 587819e03508ac53dc08e89b2591afb43ee670633fc75c7e217e623038198b6e
Contents?: true
Size: 1.38 KB
Versions: 2
Compression:
Stored size: 1.38 KB
Contents
module DPL class Provider class Heroku < Provider requires 'heroku-api' requires 'rendezvous' def api @api ||= ::Heroku::API.new(:api_key => option(:api_key)) unless options[:user] and options[:password] @api ||= ::Heroku::API.new(:user => options[:user], :password => options[:password]) end def check_auth log "authenticated as %s" % api.get_user.body["email"] end def check_app info = api.get_app(option(:app)).body options[:git] ||= info['git_url'] log "found app #{info['name']}" end def setup_key(file) api.post_key File.read(file) end def remove_key api.delete_key(option(:key_name)) end def push_app system "git push #{option(:git)} HEAD:master -f" end def run(command) data = api.post_ps(option(:app), command, :attach => true).body rendezvous_url = data['rendezvous_url'] Rendezvous.start(:url => rendezvous_url) unless rendezvous_url.nil? end def deploy super rescue ::Heroku::API::Errors::NotFound=> error raise Error, "#{error.message} (wrong app #{options[:app].inspect}?)", error.backtrace rescue ::Heroku::API::Errors::Unauthorized => error raise Error, "#{error.message} (wrong API key?)", error.backtrace end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dpl-0.2.0 | lib/dpl/provider/heroku.rb |
dpl-0.1.0 | lib/dpl/provider/heroku.rb |