Get list of releases and epp packages on the fly

Change-Id: I47170a826c2eb528400cc1a892f6eadc3c6b206f
Signed-off-by: Frederic Gurr <frederic.gurr@eclipse-foundation.org>
diff --git a/checkMirrorsUtility/checkMirrors.sh b/checkMirrorsUtility/checkMirrors.sh
index 56dbe80..50cf35c 100755
--- a/checkMirrorsUtility/checkMirrors.sh
+++ b/checkMirrorsUtility/checkMirrors.sh
@@ -134,30 +134,50 @@
   rm -f mirrorsList.txt
 fi
 
+get_dir_list() {
+  local url="$1"
+  # get html, only extract the dirlist, remove the dirlist title (<h2>), fix the html, select the div,
+  # get rid of all empty lines, grep for "20"
+  curl -s -L -H 'X-Cache-Bypass: true' "${url}" | \
+  sed -n "/<div id='dirlist'>/,/<\/div>/p" | \
+  sed "s/<h2>.*<\/h2>//" | \
+  xmlstarlet fo -R --noindent 2>/dev/null | \
+  xmlstarlet sel -t -v "//div" | \
+  sed '/^[[:space:]]*$/d'| \
+  grep "20"
+}
+
+get_epp_releases() {
+  for release in $(get_dir_list "https://download.eclipse.org/technology/epp/packages")
+  do
+    echo "/technology/epp/packages/${release}"
+  done 
+}
+
+get_simrel_releases() {
+  local releases_url="https://download.eclipse.org/releases"
+  for release in $(get_dir_list "${releases_url}")
+  do
+    # get list of release subdirs, take the last one, trim string
+    subdir=$(get_dir_list "${releases_url}/${release}" | tail -n 1 | sed -e 's/^[[:space:]]*//')
+    if [[ ! -z "${subdir}" ]]; then
+      echo "/releases/${release}/${subdir}"
+    fi
+  done 
+}
+
 if [ -z "${urls}" ]; then
-  urls="\
-    /tools/orbit/downloads/drops/R20160520211859/repository/ \
-    /releases/2019-03/201903201000/ \
-    /releases/2019-06/201906191000/ \
-    /releases/2019-09/201909181001/ \
-    /releases/2019-12/201912181000/ \
-    /releases/2020-03/202003181000/ \
-    /releases/2020-06/202006171000/ \
-    /releases/2020-09/202009161000/ \
-    /releases/2020-12/202012161000/ \
-    /technology/epp/packages/2019-03/ \
-    /technology/epp/packages/2019-09/ \
-    /technology/epp/packages/2019-12/ \
-    /technology/epp/packages/2020-03/ \
-    /technology/epp/packages/2020-06/ \
-    /technology/epp/packages/2020-09/ \
-    /technology/epp/packages/2020-12/ \
-    /cbi/updates/aggregator/ide/4.8/ \
-    /cbi/updates/aggregator/headless/4.8/ \
-    /eclipse/updates/4.6/R-4.6-201606061100 \
-    /eclipse/updates/4.6/R-4.6.1-201609071200 \
-    /eclipse/updates/4.6/R-4.6.2-201611241400 \
-    /eclipse/updates/4.6/R-4.6.3-201703010400"
+   # line breaks are not really handled nicely here, but it still works
+   urls="\
+     /tools/orbit/downloads/drops/R20160520211859/repository/ \
+     /cbi/updates/aggregator/ide/4.8/ \
+     /cbi/updates/aggregator/headless/4.8/ \
+     /eclipse/updates/4.6/R-4.6-201606061100 \
+     /eclipse/updates/4.6/R-4.6.1-201609071200 \
+     /eclipse/updates/4.6/R-4.6.2-201611241400 \
+     /eclipse/updates/4.6/R-4.6.3-201703010400 \
+     $(get_epp_releases) \
+     $(get_simrel_releases)"
 fi
 
 if [ $verbose ]; then