many changes to zoneinfo, and to the download mechanizm
diff --git a/updatezinfo.py b/updatezinfo.py
index 78708ca..ade4d05 100755
--- a/updatezinfo.py
+++ b/updatezinfo.py
@@ -1,31 +1,29 @@
#!/usr/bin/env python
import os
import hashlib
+import json
+import io
from six.moves.urllib import request
from dateutil.zoneinfo import rebuild
-
-# ad-hoc solution. TODO: use configuration file or something
-TZRELEASES = "ftp://ftp.iana.org/tz/releases/"
-TZFILEPATTERN = "tzdata{tag}.tar.gz"
-TZTAG = "2014j"
-SHA512 = "4c2979be3a96f91f8576304ec905d571b73df0842c8300c1d7317819b45ab3e29948ed911aa265b12a4ad587d5cba44f646dd02e40e4fbf9e68556a2d327142e"
-
-TZFILE = TZFILEPATTERN.format(tag=TZTAG)
+METADATA_FILE = "zonefile_metadata.json"
def main():
- if not os.path.isfile(TZFILE):
+ with io.open(METADATA_FILE,'r') as f:
+ metadata = json.load(f)
+
+ if not os.path.isfile(metadata['tzdata_file']):
print("Downloading tz file from iana")
- request.urlretrieve(TZRELEASES + TZFILE, TZFILE)
- with open(TZFILE,'rb') as tzfile:
+ request.urlretrieve(os.path.join(metadata['releases_url'],metadata['tzdata_file']), metadata['tzdata_file'])
+ with open(metadata['tzdata_file'],'rb') as tzfile:
sha_hasher = hashlib.sha512()
sha_hasher.update(tzfile.read())
sha_512_file = sha_hasher.hexdigest()
- assert SHA512 == sha_512_file, "SHA failed for downloaded tz file"
+ assert metadata['tzdata_file_sha512'] == sha_512_file, "SHA failed for downloaded tz file"
print("Updating timezone information...")
- rebuild(TZFILE, TZTAG)
+ rebuild(metadata['tzdata_file'], zonegroups=metadata['zonegroups'])
print("Done.")
if __name__ == "__main__":