Sha256: b9f6f1cd66b3863251343bf332425d9ecaa5bf2a1401a934e1a7cb6aeb8777be

Contents?: true

Size: 898 Bytes

Versions: 3

Compression:

Stored size: 898 Bytes

Contents

# -*- mode: ruby; coding: utf-8 -*-


SUBMODULE_TASKS = %w[
  build clean lib ext doc test gem
  status diff push pull
  install uninstall upload
]


SUBMODULE_TASKS.each do |name|
  t = task "#{name}-all".intern
  t.prerequisites.unshift "submodule:#{name}", :header
  t.prerequisites.push name.intern
end if File.exist? '.gitmodules'

task :submodule => "submodule:init"

task :header do
  header MODULE
end


namespace :submodule do


  mods  = env :SUBMODULES, []
  git   = env :GIT,        'git'


  (SUBMODULE_TASKS + [:init]).each do |t|
    task t.intern => mods.map {|m| "submodule:#{m}:#{t}"}
  end

  mods.each do |mod|
    namespace mod.intern do

      empty_task :init

      SUBMODULE_TASKS.each do |t|
        task t.intern => "submodule:#{mod}:init" do
          header mod
          sh %( cd #{mod} && rake #{t} )
        end
      end

    end# mod.intern
  end


end# submodule

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
xot-0.1.6 task/submodule.rake
xot-0.1.5 task/submodule.rake
xot-0.1.4 task/submodule.rake