blob: ab69c23d6ac8ab9e64d3cfd8bd90826e43165184 [file] [log] [blame]
#!/usr/bin/env python3
import os
import sys
import tempfile
from datetime import datetime, timedelta
from urllib.parse import parse_qs
file = __file__.split(':/cygwin')[-1]
http_root = os.path.dirname(os.path.dirname(os.path.abspath(os.path.dirname(file))))
sys.path.insert(0, http_root)
test = parse_qs(os.environ.get('QUERY_STRING', ''), keep_blank_values=True).get('test', ['state'])[0]
tmpFilePath = os.path.join(tempfile.gettempdir(), '{}_state'.format(test))
if os.path.isfile(tmpFilePath):
sys.stdout.write(
'status: 404\r\n'
'Content-Type: text/html\r\n\r\n{}'.format(tmpFilePath)
)
sys.exit(0)
tmpFile = open(tmpFilePath, 'w+')
tmpFile.close()
filePath = os.path.join(os.path.dirname(__file__), 'compass-no-cache.jpg')
stat = os.stat(filePath)
filemtime = stat.st_mtime
filesize = stat.st_size
etag = '"{}-{}"'.format(filesize, filemtime)
last_modified = '{} +0000'.format(datetime.utcfromtimestamp(filemtime).strftime('%a, %d %b %Y %H:%M:%S'))
max_age = 12 * 31 * 24 * 60 * 60
expires = '{} +0000'.format((datetime.utcnow() + timedelta(seconds=max_age)).strftime('%a, %d %b %Y %H:%M:%S'))
sys.stdout.write(
'Cache-Control: public, max-age={}\r\n'
'Expires: {}\r\n'
'Content-Type: image/png\r\n'
'Content-Length: {}\r\n'
'Etag: {}\r\n'
'Last-Modified: {}\r\n\r\n'.format(max_age, expires, filesize, etag, last_modified)
)
sys.stdout.flush()
with open(filePath, 'rb') as file:
sys.stdout.buffer.write(file.read())
sys.exit(0)