diff options
Diffstat (limited to 'https-what-repos.py')
-rwxr-xr-x | https-what-repos.py | 29 |
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) |