def run
if !File.exists?(@main) or File.directory?(@main)
warn "Specified RDoc Main file #{@main} not found. Ignored."
@main = nil
end
rdoc_dir = File.expand_path(@dir)
if FileTest.directory?(@dir)
print "Directory '#{@dir}' already exists. Clobber? [y/N] "
until inp = $stdin.gets[0,1] ; sleep 1 ; end ; puts
if (inp || 'y').downcase == 'y'
puts "Removing old directory '#{rdoc_dir}'..."
FileUtils.rm_r(@dir)
else
puts "Reap rdoc task canceled."
return nil
end
end
rdoc_target = "#{rdoc_dir}/index.html"
rdoc_files = FileList.new
rdoc_files.include(*@include)
rdoc_files.exclude(*@exclude)
rdoc_files = '"' << rdoc_files.join('" "') << '"'
build = @options.dup
build << "--main '#{@main}'" if @main
build << "--title '#{@title}'" if @title
build << "-T '#{@template}'" if @template
rdoc_opts = build.join(' ')
puts "Reap is shelling work out to RDoc..."
puts %{rdoc -o #{@dir} #{rdoc_opts}}
sh %{rdoc -o #{rdoc_dir} #{rdoc_opts} #{rdoc_files}}
end