Merge "update checkdocs.sh: conf.py interspinx mapping"
[doc.git] / tools / checkrtd.sh
index 1b60a76..e626dd9 100755 (executable)
@@ -1,19 +1,23 @@
 #!/bin/bash
 #set -x # uncomment for bash script debugging
 
+# branch, e.g. "master" or "guilin"
 branch=$1
+# logfile produced by checkdocs that contains the list of links
 file_to_process=$2
 
 #
 # NOTE: works NOT with elalto release and below because of the submodule structure used for documentation
 #
 
- url_start="https://docs.onap.org/projects/onap"
-  url_lang="en"
+# url
+# important! only doc project needs a different url base
+url_lang="en"
 url_branch=${branch}
+unique=$(date +%s)
 
-# "master" docs are available as "latest" in read-the-docs
-if [ "${url_branch}" = "master" ]; then
+# "master" branch documentation is available as "latest" in RTD
+if [[ ${url_branch} == "master" ]]; then
   url_branch="latest"
 fi
 
@@ -22,6 +26,10 @@ readarray -t array < ${file_to_process};
 for line in "${array[@]}"
 do
 
+  reponame=$(echo ${line} | cut -d "[" -f2 | cut -d "]" -f1)
+  #reponame="[${reponame}]"
+  #echo "DBUG: reponame=${reponame}"
+
   # example line: [dmaap/messagerouter/messageservice]/docs/release-notes/release-notes.rst
   # example url:  https://docs.onap.org/projects/onap-dmaap-messagerouter-messageservice/en/frankfurt/release-notes/release-notes.html
 
@@ -34,25 +42,43 @@ do
   # warning: path does not always contain "docs"!
   # line:   [dmaap/messagerouter/messageservice]/docs/release-notes/release-notes.rst
   # output:                                           release-notes/release-notes.html
-  url_file=$(echo ${line} | sed -r 's/^.+\]//' | sed -r 's/^.*docs\///' | sed -r 's/\.rst$/\.html/' )
+  url_file=$(echo ${line} | sed -r 's/^.+\]//' | sed -r 's/^.*\/docs\///' | sed -r 's/\.rst$/\.html/' )
+
+  #echo "DBUG:     line = ${line}"
+  #echo "DBUG: url_file = ${url_file}"
+  #echo "DBUG: url_repo = ${url_repo}"
+  #echo "DBUG: reponame = ${reponame}"
 
   # build the full url
-  url="${url_start}-${url_repo}/${url_lang}/${url_branch}/${url_file}"
+  if [[ ${reponame} == "doc" ]]; then
+    # build the full url for the doc project
+    url_start="https://docs.onap.org"
+    url="${url_start}/${url_lang}/${url_branch}/${url_file}"
+  else
+    # build the full url for the other projects
+    url_start="https://docs.onap.org/projects/onap"
+    url="${url_start}-${url_repo}/${url_lang}/${url_branch}/${url_file}"
+  fi
+
+  #echo "DBUG:      url = $url"
 
   # check with curl if html page is accessible (no content check!)
-  curl --head --silent --fail "${url}" >/dev/null
+  # to prevent (server side) cached results a unique element is added to the request
+  curl --head --silent --fail "${url}?${unique}" >/dev/null
   curl_result=$?
 
   # "0" and "22" are expected as a curl result
   if [ "${curl_result}" = "0" ]; then
-    curl_result="ok   "
+    curl_result="accessible"
   elif [ "${curl_result}" = "22" ]; then
-    curl_result="ERROR"
+    curl_result="does not exist"
   fi
 
-  echo -e "DBUG:       ${line}"
-  echo -e "DBUG: ${curl_result} ${url}"
-  echo " "
+  #echo -e "DBUG:       ${line}"
+  #echo -e "DBUG: ${curl_result} ${url}"
+  #echo " "
+
+  echo "${line},${url},${curl_result}"
 
   ((i++))
 done