blob: 0ce4b7975f95ab6930f0b2674191930df9ab5b20 [file] [log] [blame]
require 'rubygems'
require 'rake/clean'
require 'fileutils'
task :default => [:update_docs, :build, :clean]
CLEAN.include("**/.DS_Store")
desc "Build the website from source"
task :build do
puts "Building website from static source"
result = system("middleman build --clean")
if result
puts "Successfully generated the site, please commit your changes"
else
puts "An error was encountered when generating the site"
end
end
desc "Update the latest docs from the Apache Mesos codebase"
task :update_docs do
puts "Updating latest documentation from the Apache Mesos codebase"
docs_dir = File.join(File.dirname(__FILE__), "source/documentation")
puts "Updating docs to the latest version"
FileUtils.mkdir_p("source/documentation/latest/")
FileUtils.rm_f(Dir.glob("source/documentation/latest/*.md"))
FileUtils.cp_r(Dir.glob("../docs/*.md"), File.expand_path("source/documentation/latest/"))
puts "Parse documentation files to removing md extension in any links"
Dir.chdir("#{docs_dir}/latest/") {
Dir.glob('*.md').each { |doc|
puts "working on: #{doc}"
IO.write(doc, File.open(doc) { |f|
f.read
.gsub(/\(([^(\/]+)\.md(\#.+?)?\)/, '(/documentation/latest/\1/\2)')
.gsub(/\(images\/(.*)\)/, '(/assets/img/documentation/\1)')
})
}
}
puts "Moving documentation index to its own 'latest' directory"
FileUtils.mv("source/documentation/latest/home.md", "source/documentation/latest.html.md")
puts "Documentation updated"
# Copy the images from the docs
FileUtils.mkdir_p("source/assets/img/documentation/")
FileUtils.rm_f(Dir.glob("source/assets/img/documentation/*"))
FileUtils.cp_r(Dir.glob("../docs/images/*"), File.expand_path("source/assets/img/documentation/"))
end
desc "Generate javadoc from the Java source files in the codebase"
task :javadoc do
# TODO: add version to the path. Uses 'current' for now.
system("javadoc -d publish/api/latest/java -sourcepath ../src/java/src org.apache.mesos")
end
desc "Generate doxygen from the C++ source files in the codebase"
task :doxygen do
system("pushd .. && doxygen && popd && rsync -avz ../docs/html/* publish/api/latest/c++")
end
desc "Run the site in development mode. Preview available at http://localhost:4567/"
task :dev do
system("middleman server")
end