###
### Telemetry shutdown hook
###
from casa_shutdown import add_shutdown_hook
from telemetry import telemetry
import fnmatch
import os
from casac import casac
import __casac__
import atexit
import datetime

def logShutdown():
    if (casa['state']['telemetry-enabled'] == True):
        casalog.origin("CASAStop")
        casalog.poststat("Stopping CASA at: " + str(datetime.datetime.now()) + " Version " + casa['build']['version'] \
            + " Platform: " + platform.platform() +  " Start time: " + casa['state']['telemetry-starttime'] + " Variant: " + casa['variant'])

casa['state']['telemetry-enabled'] = ${TELEMETRY_DEFAULT}

casa_util = __casac__.utils.utils()

rcTelemetryFlag = str.upper(casa_util.getrc("EnableTelemetry"))

# Use the value from casarc file if it is set, otherwise leave it as is
if (rcTelemetryFlag):
    if (rcTelemetryFlag == 'TRUE'):
        casa['state']['telemetry-enabled'] = True
    if (rcTelemetryFlag == 'FALSE'):
        casa['state']['telemetry-enabled'] = False

# Use and environment variable if it is set
if (os.environ.has_key('CASA_ENABLE_TELEMETRY')):
    if (os.environ['CASA_ENABLE_TELEMETRY'].upper( ) == 'TRUE'):
        casa['state']['telemetry-enabled'] = True
    if (os.environ['CASA_ENABLE_TELEMETRY'].upper( ) == 'FALSE'):
        casa['state']['telemetry-enabled'] = False

# Command line telemetry flag is only used to enable telemetry temporarily
if (casa['flags'].telemetry == True):
    casa['state']['telemetry-enabled'] = True

if (casa['state']['telemetry-enabled'] == True):
    atexit.register(logShutdown)
    casatelemetry = telemetry(casa)