# -*- ruby -*-

require 'rubygems'
require 'hoe'

task :default => :package
task :package => :prepare

directory "pkg/jruby-jars-#{JRUBY_VERSION}/lib"

file 'pkg/jruby-complete.jar' => "pkg" do
  pkg_dir = File.expand_path('pkg')
  Dir.chdir('..') do
    sh "ant jar-complete -Ddest.lib.dir='#{pkg_dir}'"
  end
end

def core_files_and_dirs
  FileList[*%w(builtin jruby org com jline jay jni YechtService.class)].select{|f| File.exist?(f) }
end

desc "Run to update jars and versions"
task :update => ['pkg/jruby-complete.jar', "pkg/jruby-jars-#{JRUBY_VERSION}/lib"] do
  rm_f 'lib/*.jar'
  %w(pkg/jruby-complete pkg/jruby-core).each {|d| rm_rf d; mkdir_p d }
  Dir.chdir("pkg/jruby-complete") do
    sh "jar xf ../jruby-complete.jar"
    mv core_files_and_dirs, "../jruby-core"
  end
  sh "jar cfm pkg/jruby-jars-#{JRUBY_VERSION}/lib/jruby-core-#{JRUBY_VERSION}.jar pkg/jruby-complete/META-INF/MANIFEST.MF -C pkg/jruby-core ."
  rm "pkg/jruby-complete/META-INF/MANIFEST.MF"
  sh "jar cf pkg/jruby-jars-#{JRUBY_VERSION}/lib/jruby-stdlib-#{JRUBY_VERSION}.jar -C pkg/jruby-complete ."
  cp "pkg/jruby-jars-#{JRUBY_VERSION}/lib/jruby-core-#{JRUBY_VERSION}.jar", 'lib'
  cp "pkg/jruby-jars-#{JRUBY_VERSION}/lib/jruby-stdlib-#{JRUBY_VERSION}.jar", 'lib'

  mkdir_p 'lib/jruby-jars'
  File.open('lib/jruby-jars/version.rb', 'w') do |file|
    file.write("module JRubyJars\n  VERSION = '#{JRUBY_VERSION}'\nend")
  end

  File.open('Manifest.txt', 'w') do |file|
    file.write <<EOS
History.txt
Manifest.txt
README.txt
lib/jruby-jars/version.rb
lib/jruby-jars.rb
lib/jruby-core-#{JRUBY_VERSION}.jar
lib/jruby-stdlib-#{JRUBY_VERSION}.jar
EOS
  end
end

Hoe.new('jruby-jars', JRUBY_VERSION) do |p|
  p.rubyforge_name = 'jruby-extras' # if different than lowercase project name
  p.developer('Charles Oliver Nutter', 'charles.nutter@sun.com')
end
