blob: 78708caad328e41fd02a0ef870f5cfd575bbf5c2 [file] [log] [blame]
Tomi Pieviläinen8c6026b2013-11-01 10:37:15 +02001#!/usr/bin/env python
niemeyer672e2eb2005-02-23 00:04:12 +00002import os
Yaron de Leeuwd722aad2014-11-20 22:36:52 +02003import hashlib
4
5from six.moves.urllib import request
niemeyer672e2eb2005-02-23 00:04:12 +00006
Tomi Pieviläinene5515072012-03-28 18:04:02 +03007from dateutil.zoneinfo import rebuild
8
Yaron de Leeuwd722aad2014-11-20 22:36:52 +02009
10# ad-hoc solution. TODO: use configuration file or something
11TZRELEASES = "ftp://ftp.iana.org/tz/releases/"
12TZFILEPATTERN = "tzdata{tag}.tar.gz"
13TZTAG = "2014j"
14SHA512 = "4c2979be3a96f91f8576304ec905d571b73df0842c8300c1d7317819b45ab3e29948ed911aa265b12a4ad587d5cba44f646dd02e40e4fbf9e68556a2d327142e"
15
16TZFILE = TZFILEPATTERN.format(tag=TZTAG)
niemeyer672e2eb2005-02-23 00:04:12 +000017
18def main():
Yaron de Leeuwd722aad2014-11-20 22:36:52 +020019 if not os.path.isfile(TZFILE):
20 print("Downloading tz file from iana")
21 request.urlretrieve(TZRELEASES + TZFILE, TZFILE)
22 with open(TZFILE,'rb') as tzfile:
23 sha_hasher = hashlib.sha512()
24 sha_hasher.update(tzfile.read())
25 sha_512_file = sha_hasher.hexdigest()
26 assert SHA512 == sha_512_file, "SHA failed for downloaded tz file"
Gustavo Niemeyerac37a802011-03-24 14:16:39 -030027 print("Updating timezone information...")
Yaron de Leeuwd722aad2014-11-20 22:36:52 +020028 rebuild(TZFILE, TZTAG)
Gustavo Niemeyerac37a802011-03-24 14:16:39 -030029 print("Done.")
niemeyer672e2eb2005-02-23 00:04:12 +000030
31if __name__ == "__main__":
32 main()