Sha256: b2c9def1d0990df332b917f1a3ec9de4b73da2fe98621a764861392de8f06911

Contents?: true

Size: 1.9 KB

Versions: 21

Compression:

Stored size: 1.9 KB

Contents

require 'rake_dependencies'
require 'rake_leiningen/version'
require 'rake_leiningen/tasks'
require 'rake_leiningen/task_sets'

module RakeLeiningen
  def self.define_check_tasks(opts = {}, &block)
    RakeLeiningen::TaskSets::Checks.define(opts, &block)
  end

  def self.define_build_task(opts = {}, &block)
    RakeLeiningen::Tasks::Build.define(opts, &block)
  end

  def self.define_release_task(opts = {}, &block)
    RakeLeiningen::Tasks::Release.define(opts, &block)
  end

  def self.define_start_task(opts = {}, &block)
    RakeLeiningen::Tasks::Start.define(opts, &block)
  end

  def self.define_test_task(opts = {}, &block)
    RakeLeiningen::Tasks::Test.define(opts, &block)
  end

  def self.define_installation_tasks(opts = {})
    namespace = opts[:namespace] || :leiningen
    dependency = 'lein'
    version = opts[:version] || '2.9.1'
    path = opts[:path] || File.join(Dir.pwd, 'vendor', 'leiningen')
    type = :uncompressed
    uri_template = "https://raw.githubusercontent.com/technomancy/" +
        "leiningen/<%= @version %>/bin/lein"
    file_name_template = "lein"

    needs_fetch_checker = lambda do |t|
      binary = File.join(t.path, t.binary_directory, 'lein')
      version_string = StringIO.new

      if File.exist?(binary)
        Lino::CommandLineBuilder.for_command(binary)
            .with_flag('-version')
            .build
            .execute(stdout: version_string)

        if version_string.string.lines.first =~ /#{version}/
          return false
        end
      end

      return true
    end

    RubyLeiningen.configure do |c|
      c.binary = File.join(path, 'bin', 'lein')
    end

    RakeDependencies::TaskSets::All.define(
        namespace: namespace,
        dependency: dependency,
        version: version,
        path: path,
        type: type,
        uri_template: uri_template,
        file_name_template: file_name_template,
        needs_fetch: needs_fetch_checker)
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
rake_leiningen-0.33.0.pre.2 lib/rake_leiningen.rb
rake_leiningen-0.33.0.pre.1 lib/rake_leiningen.rb
rake_leiningen-0.32.0 lib/rake_leiningen.rb
rake_leiningen-0.31.0.pre.4 lib/rake_leiningen.rb
rake_leiningen-0.31.0.pre.3 lib/rake_leiningen.rb
rake_leiningen-0.31.0.pre.2 lib/rake_leiningen.rb
rake_leiningen-0.31.0.pre.1 lib/rake_leiningen.rb
rake_leiningen-0.30.0 lib/rake_leiningen.rb
rake_leiningen-0.29.0.pre.1 lib/rake_leiningen.rb
rake_leiningen-0.28.0 lib/rake_leiningen.rb
rake_leiningen-0.27.0.pre.1 lib/rake_leiningen.rb
rake_leiningen-0.26.0 lib/rake_leiningen.rb
rake_leiningen-0.25.0.pre.1 lib/rake_leiningen.rb
rake_leiningen-0.24.0 lib/rake_leiningen.rb
rake_leiningen-0.23.0.pre.2 lib/rake_leiningen.rb
rake_leiningen-0.23.0.pre.1 lib/rake_leiningen.rb
rake_leiningen-0.22.0 lib/rake_leiningen.rb
rake_leiningen-0.21.0.pre.2 lib/rake_leiningen.rb
rake_leiningen-0.21.0.pre.1 lib/rake_leiningen.rb
rake_leiningen-0.20.0 lib/rake_leiningen.rb