base_dir = File.expand_path('..', File.dirname(__FILE__))

namespace :docs do

  desc "Generates docs files to preview."
  task :generate do
    require 'erb'
    require 'github/markup'
    template = ERB.new File.read("#{base_dir}/misc/github_template.html.erb")

    Dir.glob("#{base_dir}/*.textile").each do |file|
      filename = File.basename(file)
      content = GitHub::Markup.render(file, File.read(file))
      rendered = template.result(binding)
      output = "#{base_dir}/misc/#{filename}"
      File.open(output, 'w') {|f| f.write(rendered) }
      puts "Preview rendered to #{output}"
    end
  end
end

desc "Run all tests."
task :tests, :executable, :host, :port, :workers, :tests_tmp_dir do |t, args|
  ENV['NGINX_EXEC'] = args[:executable] || nil
  ENV['NGINX_HOST'] = args[:host] || nil
  ENV['NGINX_PORT'] = args[:port] || nil
  ENV['NGINX_WORKERS'] = args[:workers] || nil
  ENV['NGINX_TESTS_TMP_DIR'] = args[:tests_tmp_dir] || nil

  require 'test/unit'

  Dir.glob('test_*.rb').each do|f|
    test_case = "#{base_dir}/test/#{f}".gsub('.rb', '')
    require test_case
  end
end
