#!/usr/bin/python
"""Usage: next-equinox [TIMEZONE]"""
# Copyright ©2017-19 Klaus Alexander Seistrup <
[email protected]>
# Copying policy: GPLv3+
#
# Requirements: Python 3, ephem, pytz
import sys
from os.path import basename
try:
import ephem
from pytz import timezone
from pytz.exceptions import UnknownTimeZoneError
except ImportError as error:
print(error, file=sys.stderr)
sys.exit(1)
DEFAULT_TIMEZONE = 'Europe/Copenhagen'
if len(sys.argv) == 2 and sys.argv[1] in {'-h', '--help', '-help'}:
ME = basename(sys.argv[0])
print(f'usage: {ME} [TIMEZONE] # default: {DEFAULT_TIMEZONE}')
sys.exit(0)
try:
LOCAL_TIMEZONE = timezone(
sys.argv[1] if len(sys.argv) == 2 else DEFAULT_TIMEZONE
)
except UnknownTimeZoneError as error:
print(f'Unrecognized timezone {error}', file=sys.stderr)
sys.exit(1)
EQUINOX = ephem.next_equinox(ephem.now()).datetime()
EQUINOX_UTC = EQUINOX.replace(tzinfo=timezone('UTC'))
EQUINOX_LOCAL = EQUINOX_UTC.astimezone(LOCAL_TIMEZONE)
print('{:%F %T %Z}'.format(EQUINOX_LOCAL))
sys.exit(0)
# eof