diff options
Diffstat (limited to 'nikola/packages')
| -rw-r--r-- | nikola/packages/__init__.py | 1 | ||||
| -rw-r--r-- | nikola/packages/tzlocal/darwin.py | 13 | ||||
| -rw-r--r-- | nikola/packages/tzlocal/unix.py | 2 |
3 files changed, 13 insertions, 3 deletions
diff --git a/nikola/packages/__init__.py b/nikola/packages/__init__.py index e69de29..0a704f5 100644 --- a/nikola/packages/__init__.py +++ b/nikola/packages/__init__.py @@ -0,0 +1 @@ +# Packages vendored in by Nikola. diff --git a/nikola/packages/tzlocal/darwin.py b/nikola/packages/tzlocal/darwin.py index 8aeee51..8bfe807 100644 --- a/nikola/packages/tzlocal/darwin.py +++ b/nikola/packages/tzlocal/darwin.py @@ -1,17 +1,26 @@ from __future__ import with_statement import os import dateutil.tz +import subprocess _cache_tz = None def _get_localzone(): - tzname = os.popen("systemsetup -gettimezone").read().replace("Time Zone: ", "").strip() + tzname = subprocess.check_output(["systemsetup", "-gettimezone"]).decode('utf-8') + tzname = tzname.replace("Time Zone: ", "") + # OS X 10.9+, this command is root-only + if 'exiting!' in tzname: + tzname = '' + if not tzname: # link will be something like /usr/share/zoneinfo/America/Los_Angeles. link = os.readlink("/etc/localtime") - tzname = link[link.rfind('/', 0, link.rfind('/')) + 1:] + tzname = link.split('zoneinfo/')[-1] + tzname = tzname.strip() try: + # test the name + assert tzname dateutil.tz.gettz(tzname) return tzname except: diff --git a/nikola/packages/tzlocal/unix.py b/nikola/packages/tzlocal/unix.py index 8e913b8..4cd3752 100644 --- a/nikola/packages/tzlocal/unix.py +++ b/nikola/packages/tzlocal/unix.py @@ -30,7 +30,7 @@ def _get_localzone(): try: # link will be something like /usr/share/zoneinfo/America/Los_Angeles. link = os.readlink('/etc/localtime') - tz = link[link.rfind('/', 0, link.rfind('/')) + 1:] + tz = link.split('zoneinfo/')[-1] if tz: dateutil.tz.gettz(tz) |
