Sha256: 733c3bd47e7a73ecb727691def820f10e943509721200bc5558c5e48784943f4

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

require 'bundler'

module Rake
  module DSL
    
    def foreman(env_vars, cmd)
      Bundler.with_clean_env do
        sh "#{env_vars.collect { |var| var.join('=') }.join(' ')} foreman #{cmd}"
      end
    end

    def heroku(*cmd_args)
      Bundler.with_clean_env do
        sh "heroku #{ cmd_args.join(' ') }"
      end
    end

    def heroku_config_get(var, app)
      Bundler.with_clean_env do
        `heroku config:get #{var} --app #{app}`.chomp
      end
    end

  end
end

class HerokuApp
  include Rake::DSL
  
  def initialize(name, heroku_name = nil)
    @name, @heroku_name = name, heroku_name
    @heroku_name ||= @name
  end

  def package(artefact)
    "package/#{@name}".tap do |pkg_dir|
      mkdir_p pkg_dir
      cp "heroku/Procfile.#{@name}", "#{pkg_dir}/Procfile"
      cp artefact, pkg_dir
    end
  end

  def push
    heroku "push package/#{@name} --app #{@heroku_name}"
  end

  def deploy_jar(jar_file, opts)
    option_string = ''
    option_string = "--options #{opts.join(' ')}" unless opts.empty?
    heroku "deploy:jar --jar #{jar_file} #{option_string} --app #{@heroku_name}"
  end

  def config(var)
    heroku_config_get(var, @heroku_name)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ggake-0.9.0 lib/ggake/heroku.rb