Sha256: bc2b50169b23c1b10beb7d7e9f78667727d0a1f85135e316c144f3fb2b9c1201

Contents?: true

Size: 1.48 KB

Versions: 4

Compression:

Stored size: 1.48 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_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

4 entries across 4 versions & 1 rubygems

Version Path
rake_leiningen-0.8.0 lib/rake_leiningen.rb
rake_leiningen-0.7.0.pre.1 lib/rake_leiningen.rb
rake_leiningen-0.6.0 lib/rake_leiningen.rb
rake_leiningen-0.5.0.pre.1 lib/rake_leiningen.rb