Changeset View
Changeset View
Standalone View
Standalone View
utils/zonetabconversion.py
#!/bin/python2.7 | #!/bin/python2.7 | ||||
import os | import os | ||||
timezones = [] | timezones = [] | ||||
directory = '/usr/share/zoneinfo/' | |||||
for root, directories, filenames in os.walk('/usr/share/zoneinfo/'): | for root, directories, filenames in os.walk(directory): | ||||
for filename in filenames: | for filename in filenames: | ||||
if filename.endswith('.tab'): | if filename.endswith('.tab'): | ||||
continue | continue | ||||
if filename.endswith('.zi'): | if filename.endswith('.zi'): | ||||
continue | continue | ||||
if filename == 'leapseconds': | if filename == 'leapseconds': | ||||
continue | continue | ||||
if filename == 'posixrules': | if filename == 'posixrules': | ||||
continue | continue | ||||
if os.path.basename(root) == "posix": | zone = os.path.join(root[len(directory):], filename) | ||||
if zone.startswith("posix/"): | |||||
continue | continue | ||||
if os.path.basename(root) == "right": | if zone.startswith("right/"): | ||||
continue | continue | ||||
timezones.append(os.path.join(os.path.basename(root), filename)) | timezones.append(zone) | ||||
timezones = sorted(list(set(timezones))) | timezones = sorted(list(set(timezones))) | ||||
tztable = open("tztable.h", "w") | tztable = open("tztable.h", "w") | ||||
tztable.write("//This file was generated by the zonetabconversion.py script\n") | tztable.write("//This file was generated by the zonetabconversion.py script\n") | ||||
tztable.write("static const char* olsonTimezones[] = {\n") | tztable.write("static const char* olsonTimezones[] = {\n") | ||||
tztable.write(' "') | tztable.write(' "') | ||||
tztable.write('",\n "'.join(timezones)) | tztable.write('",\n "'.join(timezones)) | ||||
tztable.write('"\n};\n') | tztable.write('"\n};\n') | ||||
tztable.write('\n') | tztable.write('\n') | ||||
tztable.write('static const long unsigned int numOlsonTimezones = sizeof olsonTimezones / sizeof *olsonTimezones;\n') | tztable.write('static const long unsigned int numOlsonTimezones = sizeof olsonTimezones / sizeof *olsonTimezones;\n') | ||||
tztable.write("\n") | tztable.write("\n") |