| 123456789101112131415161718192021222324252627282930313233 |
- #!/usr/bin/env python
- import os
- import hashlib
- import json
- import io
- from six.moves.urllib import request
- from dateutil.zoneinfo import rebuild
- METADATA_FILE = "zonefile_metadata.json"
- def main():
- 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(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 metadata['tzdata_file_sha512'] == sha_512_file, "SHA failed for"
- print("Updating timezone information...")
- rebuild(metadata['tzdata_file'], zonegroups=metadata['zonegroups'])
- print("Done.")
- if __name__ == "__main__":
- main()
|