doc: Add rake linkchecker task, and document it in the README file
[arvados.git] / doc / Rakefile
1 #!/usr/bin/env rake
2
3 require "rubygems"
4 require "colorize"
5
6 task :generate do
7   vars = ['baseurl', 'arvados_api_host', 'arvados_workbench_host']
8   vars.each do |v|
9     if ENV[v]
10       website.config.h[v] = ENV[v]
11     end
12   end
13 end
14
15 task :linkchecker => [:realclean, :generate]
16
17 task :linkchecker do
18   Dir.chdir(".site")
19   `which linkchecker`
20   if $? == 0
21     ignore_urls = ['', 'javascript', 'mailto',
22                    'oftc.net', 'putty.org','google.com', 'fsf.org',
23                    'arvadosapi.com', 'arvados.org', 'sourceforge.net',
24                    'chiark.greenend.org.uk', 'github.io' ]
25     system "linkchecker index.html " + ignore_urls.join(' --ignore-url=')
26   else
27     puts "Warning: linkchecker not found, skipping".colorize(:light_red)
28   end
29 end
30
31 require "zenweb/tasks"
32 load "zenweb-textile.rb"
33 load "zenweb-liquid.rb"
34
35 file "sdk/python/arvados/index.html" do |t|
36   `which epydoc`
37   if $? == 0
38     `epydoc --html -o sdk/python/arvados arvados`
39     Dir["sdk/python/arvados/*"].each do |f|
40       puts f
41       $website.pages[f] = Zenweb::Page.new($website, f)
42     end
43   else
44     puts "Warning: epydoc not found, Python documentation will not be generated".colorize(:light_red)
45   end
46 end
47
48 task :extra_wirings do
49   $website.pages["sdk/python/python.html.textile.liquid"].depends_on("sdk/python/arvados/index.html")
50 end