#!/usr/bin/env python

"""
Print information about the environment.
This is used by CI tools.
"""

from sys import stdout, version, executable
from os import environ as environment, getcwd

try:
    from twisted import __version__ as twistedVersion
except ImportError:
    twistedVersion = None


class Writer(object):
    indents = " " * 4

    write = stdout.write

    def emit(self, level, text):
        self.write(self.indents * level)
        self.write(text)
        self.write("\n")

    def heading(self, text):
        self.emit(0, text + ":")

    def line(self, text):
        self.emit(1, text)


out = Writer()

out.heading("Working directory")
out.line(getcwd())

out.heading("OS environment")
for key in sorted(environment):
    out.line(key + " = " + environment[key])

out.heading("Python executable")
out.line(executable)

out.heading("Python version")
for line in version.split("\n"):
    out.line(line)

out.heading("Twisted version")
if twistedVersion is None:
    out.line("Twisted is not installed.")
else:
    out.line(twistedVersion)
