#
# SPDX-License-Identifier: CC-BY-SA-3.0
+# As a convenience to the documentation writer, you can touch a file
+# called 'no-sdk' in the 'doc' directory and it will suppress
+# generating the documentation for the SDKs, which (the R docs
+# especially) take a fair bit of time and slow down the edit-preview
+# cycle.
+
require "rubygems"
require "colorize"
-task :generate => [ :realclean, 'sdk/python/arvados/index.html', 'sdk/R/arvados/index.html' ] do
- vars = ['baseurl', 'arvados_api_host', 'arvados_workbench_host']
+task :generate => [ :realclean, 'sdk/python/arvados/index.html', 'sdk/R/arvados/index.html', 'sdk/java-v2/javadoc/index.html' ] do
+ vars = ['baseurl', 'arvados_cluster_uuid', 'arvados_api_host', 'arvados_workbench_host']
vars.each do |v|
if ENV[v]
website.config.h[v] = ENV[v]
end
file "sdk/python/arvados/index.html" do |t|
+ if File.exists? "no-sdk"
+ next
+ end
`which epydoc`
if $? == 0
STDERR.puts `epydoc --html --parse-only -o sdk/python/arvados ../sdk/python/arvados/ 2>&1`
end
file "sdk/R/arvados/index.html" do |t|
+ if File.exists? "no-sdk"
+ next
+ end
`which R`
if $? == 0
tgt = Dir.pwd
Dir.mkdir("sdk/R")
Dir.mkdir("sdk/R/arvados")
+ puts("tgt", tgt)
+ cp('css/R.css', 'sdk/R/arvados')
docfiles = []
Dir.chdir("../sdk/R/") do
STDERR.puts `Rscript createDoc.R README.Rmd #{tgt}/sdk/R/README.md 2>&1`
end
end
+file "sdk/java-v2/javadoc/index.html" do |t|
+ if File.exists? "no-sdk"
+ next
+ end
+ `which java`
+ if $? == 0
+ `which gradle`
+ if $? != 0
+ puts "Warning: gradle not found, java sdk documentation will not be generated".colorize(:light_red)
+ else
+ tgt = Dir.pwd
+ docfiles = []
+ Dir.chdir("../sdk/java-v2") do
+ STDERR.puts `gradle javadoc 2>&1`
+ raise if $? != 0
+ puts `sed -i "s/@import.*dejavu.css.*//g" build/docs/javadoc/stylesheet.css`
+ raise if $? != 0
+ end
+ cp_r("../sdk/java-v2/build/docs/javadoc", "sdk/java-v2")
+ raise if $? != 0
+ end
+ else
+ puts "Warning: java not found, java sdk documentation will not be generated".colorize(:light_red)
+ end
+end
+
task :linkchecker => [ :generate ] do
Dir.chdir(".site") do
`which linkchecker`
task :clean do
rm_rf "sdk/python/arvados"
rm_rf "sdk/R"
+ rm_rf "sdk/java-v2/javadoc"
end
require "zenweb/tasks"