diff options
-rw-r--r-- | distbuild/initiator.py | 21 | ||||
-rw-r--r-- | morphlib/plugins/distbuild_plugin.py | 1 |
2 files changed, 20 insertions, 2 deletions
diff --git a/distbuild/initiator.py b/distbuild/initiator.py index ddea8cb3..378c2cae 100644 --- a/distbuild/initiator.py +++ b/distbuild/initiator.py @@ -17,6 +17,7 @@ import cliapp +import itertools import logging import os import random @@ -37,6 +38,20 @@ class _Failed(object): self.msg = msg +def create_build_directory(prefix='build'): + '''Create a new directory to store build logs. + + The directory will be named build-0, unless that directory already exists, + in which case it will be named build-1, and so on. + + ''' + for i in itertools.count(): + path = '%s-%02i' % (prefix, i) + if not os.path.exists(path): + os.mkdir(path) + return path + + class Initiator(distbuild.StateMachine): def __init__(self, cm, conn, app, repo_name, ref, morphology, @@ -51,9 +66,13 @@ class Initiator(distbuild.StateMachine): self._original_ref = original_ref self._steps = None self._step_outputs = {} - self._step_output_dir = app.settings['initiator-step-output-dir'] self.debug_transitions = False + if app.settings['initiator-step-output-dir'] == '': + self._step_output_dir = create_build_directory() + else: + self._step_output_dir = app.settings['initiator-step-output-dir'] + def setup(self): distbuild.crash_point() diff --git a/morphlib/plugins/distbuild_plugin.py b/morphlib/plugins/distbuild_plugin.py index a7d69472..24d5584c 100644 --- a/morphlib/plugins/distbuild_plugin.py +++ b/morphlib/plugins/distbuild_plugin.py @@ -180,7 +180,6 @@ class ControllerDaemon(cliapp.Plugin): self.app.settings.string( ['initiator-step-output-dir'], 'write build output to files in DIR', - default='.', group=group_distbuild) self.app.settings.string( |