aboutsummaryrefslogtreecommitdiff
path: root/updatezinfo.py
diff options
context:
space:
mode:
authorniemeyer <>2005-02-23 00:04:12 +0000
committerniemeyer <>2005-02-23 00:04:12 +0000
commit672e2eb0393125c0d256c228e2cccb1e7abb1793 (patch)
tree499eb2a0f3af8d292904af97b9b76e394b755acc /updatezinfo.py
parent5912df38d3a7325e652f4ccb7bd89cf21bdb9f43 (diff)
downloaddateutil-672e2eb0393125c0d256c228e2cccb1e7abb1793.tar.gz
Added support for internal timezone information.
Diffstat (limited to 'updatezinfo.py')
-rwxr-xr-xupdatezinfo.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/updatezinfo.py b/updatezinfo.py
new file mode 100755
index 0000000..d39182c
--- /dev/null
+++ b/updatezinfo.py
@@ -0,0 +1,45 @@
+#!/usr/bin/python
+from dateutil.zoneinfo import rebuild
+import shutil
+import sys
+import os
+import re
+
+SERVER = "elsie.nci.nih.gov"
+DIR = "/pub"
+NAME = re.compile("tzdata(.*).tar.gz")
+
+def main():
+ if len(sys.argv) == 2:
+ tzdata = sys.argv[1]
+ else:
+ from ftplib import FTP
+ print "Connecting to %s..." % SERVER
+ ftp = FTP(SERVER)
+ print "Logging in..."
+ ftp.login()
+ print "Changing to %s..." % DIR
+ ftp.cwd(DIR)
+ print "Listing files..."
+ for name in ftp.nlst():
+ if NAME.match(name):
+ break
+ else:
+ sys.exit("error: file matching %s not found" % NAME.pattern)
+ if os.path.isfile(name):
+ print "Found local %s..." % name
+ else:
+ print "Retrieving %s..." % name
+ file = open(name, "w")
+ ftp.retrbinary("RETR "+name, file.write)
+ file.close()
+ ftp.close()
+ tzdata = name
+ if not tzdata or not NAME.match(tzdata):
+ sys.exit("Usage: updatezinfo.py tzdataXXXXX.tar.gz")
+ print "Updating timezone information..."
+ rebuild(tzdata, NAME.match(tzdata).group(1))
+ print "Done."
+
+if __name__ == "__main__":
+ main()