aboutsummaryrefslogtreecommitdiff
path: root/https-what-repos.py
diff options
context:
space:
mode:
Diffstat (limited to 'https-what-repos.py')
-rwxr-xr-xhttps-what-repos.py29
1 files changed, 19 insertions, 10 deletions
diff --git a/https-what-repos.py b/https-what-repos.py
index 9237f76..f74d2f8 100755
--- a/https-what-repos.py
+++ b/https-what-repos.py
@@ -1,14 +1,23 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
-# List Cryptech git repository URLs by scraping them from the
-# automatically generated Trac page. Yes, we know too much about how
-# the generation script and Trac format this page, c'est la vie.
+# List Cryptech git repository URLs by extracting URLs from the
+# Alpha release engineering repository's .gitmodules file.
-from urllib import urlopen
-from xml.etree.ElementTree import ElementTree
+import urllib.request
+from configparser import ConfigParser, DEFAULTSECT
-url = "https://wiki.cryptech.is/wiki/GitRepositories"
+url = "https://git.cryptech.is/releng/alpha/plain/.gitmodules"
+cfg = ConfigParser(interpolation = None)
+cfg.read_string(urllib.request.urlopen(url).read().decode())
+
+urls = [
+ cfg[section]["url"]
+ for section in cfg
+ if section != DEFAULTSECT
+]
+
+urls.sort()
+
+for url in urls:
+ print(url)
-for x in ElementTree(file = urlopen(url)).iter("{http://www.w3.org/1999/xhtml}code"):
- if x.text.startswith("https://git.cryptech.is/") and x.text.endswith(".git"):
- print(x.text)