import os

from twisted.application import service
from buildbot.master import BuildMaster

{% if relocatable -%}
basedir = '.'
{% else -%}
basedir = {{ basedir|repr }}
{%- endif %}
{% if not no_logrotate -%}
rotateLength = {{ log_size|repr }}
maxRotatedFiles = {{ log_count|repr }}
{%- endif %}
configfile = {{ config|repr }}

# Default umask for server
umask = None

# if this is a relocatable tac file, get the directory containing the TAC
if basedir == '.':
    import os.path
    basedir = os.path.abspath(os.path.dirname(__file__))

# note: this line is matched against to check that this is a buildmaster
# directory; do not edit it.
application = service.Application('buildmaster')
{% if not no_logrotate -%}
from twisted.python.logfile import LogFile
from twisted.python.log import ILogObserver, FileLogObserver
logfile = LogFile.fromFullPath(os.path.join(basedir, "twistd.log"), rotateLength=rotateLength,
                                maxRotatedFiles=maxRotatedFiles)
application.setComponent(ILogObserver, FileLogObserver(logfile).emit)
{%- endif %}

m = BuildMaster(basedir, configfile, umask)
m.setServiceParent(application)
{% if not no_logrotate -%}
m.log_rotation.rotateLength = rotateLength
m.log_rotation.maxRotatedFiles = maxRotatedFiles
{%- endif %}

