60 lines
1.7 KiB
Ruby
60 lines
1.7 KiB
Ruby
require 'launchy'
|
|
|
|
# --- Develop and public documentation ---
|
|
desc "Invoke sphinx 'make build' to generate docs."
|
|
task :builddocs, [:type, :quiet] do |t, args|
|
|
args.with_defaults(:quiet => "quiet")
|
|
if args.type == 'dev'
|
|
path = "docs/en_us/developers"
|
|
elsif args.type == 'author'
|
|
path = "docs/en_us/course_authors"
|
|
elsif args.type == 'data'
|
|
path = "docs/en_us/data"
|
|
else
|
|
path = "docs/en_us"
|
|
end
|
|
|
|
Dir.chdir(path) do
|
|
if args.quiet == 'verbose'
|
|
sh('make html quiet=false')
|
|
else
|
|
sh('make html quiet=true')
|
|
end
|
|
end
|
|
end
|
|
|
|
desc "Show docs in browser: dev, author, data."
|
|
task :showdocs, [:options] do |t, args|
|
|
if args.options == 'dev'
|
|
path = "docs/en_us/developers"
|
|
elsif args.options == 'author'
|
|
path = "docs/en_us/course_authors"
|
|
elsif args.options == 'data'
|
|
path = "docs/en_us/data"
|
|
else
|
|
path = "docs/en_us/developers"
|
|
end
|
|
|
|
Launchy.open("#{path}/build/html/index.html")
|
|
end
|
|
|
|
desc "Build docs and show them in browser"
|
|
task :doc, [:type, :quiet] => :builddocs do |t, args|
|
|
Rake::Task["showdocs"].invoke(args.type, args.quiet)
|
|
end
|
|
|
|
|
|
# Run documentation tests
|
|
desc "Run documentation tests"
|
|
task :test_docs => :install_python_prereqs do
|
|
# Be sure that sphinx can build docs w/o exceptions.
|
|
test_message = "If a docs test fails, you should run '%s' and look at whole output and fix exceptions.
|
|
(You shouldn't fix rst warnings and errors for this to pass, just get rid of exceptions.)"
|
|
puts (test_message % ["rake doc[docs,verbose]"]).colorize( :light_green )
|
|
test_sh('docs', 'rake builddocs')
|
|
end
|
|
|
|
|
|
# Add documentation tests to the main test command
|
|
task :test => :'test_docs'
|