11import html .parser
2- import os
3- import pathlib
4- import shutil
52import urllib .request
3+ import json
64
75url = "http://dev.overpass-api.de/releases/"
6+ skip_prefixes = (
7+ '0.6' , 'eta' , '0.7.1' , '0.7.2' , '0.7.3' , '0.7.4' , '0.7.50' , '0.7.52' ,
8+ '0.7.54.11' , # invalid CRC in archive
9+ '0.7.51' , # no autoconf
10+ )
811
912
1013class VersionFinder (html .parser .HTMLParser ):
@@ -23,31 +26,22 @@ def handle_starttag(self, tag, attrs):
2326 self .versions .append (version )
2427
2528
26- def main ():
29+ def versions_to_build ():
2730 parser = VersionFinder ()
2831 response = urllib .request .urlopen (url )
2932 data = response .read ().decode (response .headers .get_content_charset ())
3033 parser .feed (data )
31- with open ("Dockerfile.template" ) as f :
32- template = f .read ()
33- for ver in parser .versions :
34- if any ((ver .startswith (x ) for x in ('0.6' , 'eta' , '0.7.1' , '0.7.2' , '0.7.3' , '0.7.4' , '0.7.50' , '0.7.52' ,
35- '0.7.54.11' , # invalid CRC in archive
36- '0.7.51' , # no autoconf
37- ))) or \
38- ver == '0.7' :
39- # ignore old releases
40- continue
41- if os .path .exists (ver ):
42- shutil .rmtree (ver )
43- os .mkdir (ver )
44- with open (pathlib .Path (ver ) / "Dockerfile" , "w+" ) as f :
45- f .write (template .format (version = ver ))
46- #for i in ("etc", "bin"):
47- # shutil.copytree(i, pathlib.Path(ver) / i)
48- #shutil.copyfile("docker-entrypoint.sh", pathlib.Path(ver) / "docker-entrypoint.sh")
49- #shutil.copyfile("requirements.txt", pathlib.Path(ver) / "requirements.txt")
34+
35+ return [
36+ version for version in parser .versions
37+ if version != '0.7'
38+ and not any (version .startswith (skip_prefix ) for skip_prefix in skip_prefixes )
39+ ]
5040
5141
5242if __name__ == '__main__' :
53- main ()
43+ versions = versions_to_build ()
44+ github_matrix = {
45+ "include" : [{"version" : v } for v in versions ]
46+ }
47+ print (json .dumps (github_matrix , indent = None ))
0 commit comments