[Buildbot-devel] setting the description field for ShellCommand

Dobes Vandermeer dobesv at gmail.com
Thu Nov 3 00:47:54 UTC 2005


I had the exact same problem, but I modified ShellCommand directly;
probably we're not the only two -- Here's the patch hopefully Brian
will be so kind as to apply it (or make his own version of it):

Index: process/step.py
===================================================================
RCS file: /cvsroot/buildbot/buildbot/buildbot/process/step.py,v
retrieving revision 1.75
diff -u -r1.75 step.py
--- process/step.py	24 Oct 2005 22:42:03 -0000	1.75
+++ process/step.py	27 Oct 2005 23:02:18 -0000
@@ -699,7 +699,14 @@
         # that we create, but first strip out the ones that we pass to
         # BuildStep (like haltOnFailure and friends)
         self.workdir = kwargs['workdir'] # required by RemoteShellCommand
+
+        self.description = kwargs.get('description', [])
+        if not self.description:
+            self.description = kwargs.get('name')
+        self.descriptionDone = kwargs.get('descriptionDone')
+
         buildstep_kwargs = {}
+
         for k in kwargs.keys()[:]:
             if k in self.__class__.parms:
                 buildstep_kwargs[k] = kwargs[k]
@@ -727,10 +734,14 @@
                      text, so a simple noun is appropriate ('compile',
                      'tests' ...)
         """
-
+
         if done and self.descriptionDone is not None:
+            if isinstance(self.descriptionDone,str):
+                return [self.descriptionDone]
             return self.descriptionDone
         if self.description is not None:
+            if isinstance(self.description,str):
+                return [self.description]
             return self.description

         words = self.cmd.command


On 11/1/05, John Blair <John.Blair at sun.com> wrote:
> I need to run commands before our source tree is ready for buildbot to
> run "make".  I've been using ShellCommand to do this, but b/c it shows
> the first 2 words in the command the resulting column in the waterfall
> display is very wide.
>
> To allow me to run arbitrary shell commands and set the displayed
> description field, I wrote this object:
>
>
> class DescribedShellCommand(ShellCommand):
>
>     name = "described shell command"
>     warnOnFailure = True
>
>     def __init__(self, **kwargs):
>         self.description = kwargs['description']
>         self.descriptionDone = kwargs['descriptionDone']
>         ShellCommand.__init__(self, **kwargs)
>
>
> This lets me write steps like this in the master.cfg file:
>
> s(step.DescribedShellCommand,
>                 command = ["cp", "foo/bar/baz/Makefile.foo", "."],
>                 description = ["build", "prep"],
>                 descriptionDone = ["prep done"])
>
>
> Is there a better way to do this than what I've done?
>
>  -john.
>
>
>
> -------------------------------------------------------
> SF.Net email is sponsored by:
> Tame your development challenges with Apache's Geronimo App Server. Download
> it for free - -and be entered to win a 42" plasma tv or your very own
> Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
> _______________________________________________
> Buildbot-devel mailing list
> Buildbot-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/buildbot-devel
>




More information about the devel mailing list