21494: Adapt linkchecker arguments to built SDKs
[arvados.git] / doc / Rakefile
index c4e26cfb3b47eb78d2600057c1bab157a8858a6e..3ec494f57dcffab28248dc827d3cf7f69a1fae82 100644 (file)
@@ -19,6 +19,8 @@
 #
 # and then visit http://localhost:8000 in a browser.
 
+require "uri"
+
 require "rubygems"
 require "colorize"
 
@@ -31,18 +33,30 @@ def can_run?(*command, **options)
 end
 
 class JavaSDK
+  def self.build_path
+    "sdk/java-v2"
+  end
+
   def self.can_build?
     can_run?("gradle", "--version")
   end
 end
 
 class PythonSDK
+  def self.build_path
+    "sdk/python/arvados"
+  end
+
   def self.can_build?
     can_run?("./pysdk_pdoc.py", "--version")
   end
 end
 
 class RSDK
+  def self.build_path
+    "sdk/R"
+  end
+
   def self.can_build?
     can_run?("R", "--version")
   end
@@ -196,8 +210,17 @@ end
 
 task :linkchecker => [ :generate ] do
   # we need --check-extern to check relative links, weird but true
+  opts = [
+    "--check-extern",
+    "--ignore-url=!^file://",
+  ]
+  ([JavaSDK, PythonSDK, RSDK] - $build_sdks).map(&:build_path).each do |sdk_path|
+    sdk_url = URI.join(ENV["baseurl"], sdk_path)
+    url_re = Regexp.escape(sdk_url.to_s)
+    opts << "--ignore-url=^#{url_re}[./]"
+  end
   result = system(
-    "linkchecker", "index.html", "--check-extern", "--ignore-url=!file://",
+    "linkchecker", *opts, "index.html",
     chdir: ".site",
   )
   if result.nil?