<div dir="ltr">Hello<div>I would like to set a property from a command, after parsing the output of the command reading the <a href="http://docs.buildbot.net/current/manual/configuration/buildsteps.html?highlight=setpropertyfromcommand#setpropertyfromcommand">docs</a> I see</div><div><br></div><div><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)"><span class="gmail-k" style="font-weight:bold">def</span> <span class="gmail-nf" style="color:rgb(153,0,0);font-weight:bold">parseComplexCommandOutput</span><span class="gmail-p">(</span><span class="gmail-n">rc</span><span class="gmail-p">,</span> <span class="gmail-n">stdout</span><span class="gmail-p">,</span> <span class="gmail-n">stderr</span><span class="gmail-p">):</span>
    <span class="gmail-n">jpgs</span> <span class="gmail-o" style="font-weight:bold">=</span> <span class="gmail-p">[</span><span class="gmail-n">l</span><span class="gmail-o" style="font-weight:bold">.</span><span class="gmail-n">strip</span><span class="gmail-p">()</span> <span class="gmail-k" style="font-weight:bold">for</span> <span class="gmail-n">l</span> <span class="gmail-ow" style="font-weight:bold">in</span> <span class="gmail-n">stdout</span><span class="gmail-o" style="font-weight:bold">.</span><span class="gmail-n">split</span><span class="gmail-p">(</span><span class="gmail-s1" style="color:rgb(187,136,68)">'</span><span class="gmail-se" style="color:rgb(187,136,68)">\n</span><span class="gmail-s1" style="color:rgb(187,136,68)">'</span><span class="gmail-p">)]</span>
    <span class="gmail-k" style="font-weight:bold">return</span> <span class="gmail-p">{</span><span class="gmail-s1" style="color:rgb(187,136,68)">'jpgs'</span><span class="gmail-p">:</span> <span class="gmail-n">jpgs</span><span class="gmail-p">}</span>

<span class="gmail-n">f</span><span class="gmail-o" style="font-weight:bold">.</span><span class="gmail-n">addStep</span><span class="gmail-p">(</span><span class="gmail-n"><span class="gmail-highlighted" style="background-color:rgb(251,229,78)">SetPropertyFromCommand</span></span><span class="gmail-p">(</span><span class="gmail-n">command</span><span class="gmail-o" style="font-weight:bold">=</span><span class="gmail-s2" style="color:rgb(187,136,68)">"ls -1 *.jpg"</span><span class="gmail-p">,</span> <span class="gmail-n">extract_fn</span><span class="gmail-o" style="font-weight:bold">=</span><span class="gmail-n">parseComplexCommandOutput</span><span class="gmail-p">))</span></pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)"><span class="gmail-p"><br></span></pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)"><span class="gmail-p">This is almost what I am looking, except that my command is rather long and has dynamic parameters, something along the lines of, </span></pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)"><span class="gmail-p">    command="select * from %s where build_number=%s" %(cmd_param1,cmd_param2)<br></span></pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)"><span class="gmail-p"><br></span></pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)">So I need to construct it first</pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)"><br></pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)"><span class="gmail-k" style="font-weight:bold">def</span> <span class="gmail-nf" style="color:rgb(153,0,0);font-weight:bold">complexCommand</span><span class="gmail-p">(props</span><span class="gmail-p">):</span>
    cmd_param1=str(my_sql)</pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)">    cmd_param2<span style="font-family:Arial,Helvetica,sans-serif"> </span><span class="gmail-o" style="font-family:Arial,Helvetica,sans-serif;font-weight:bold">=</span><span style="font-family:Arial,Helvetica,sans-serif"> </span><span class="gmail-n" style="font-family:Arial,Helvetica,sans-serif">props</span><span class="gmail-o" style="font-family:Arial,Helvetica,sans-serif;font-weight:bold">.</span><span class="gmail-n" style="font-family:Arial,Helvetica,sans-serif">getProperty</span><span class="gmail-p" style="font-family:Arial,Helvetica,sans-serif">(</span><span class="gmail-s1" style="font-family:Arial,Helvetica,sans-serif;color:rgb(187,136,68)">'build_uid'</span><span class="gmail-p" style="font-family:Arial,Helvetica,sans-serif">)</span><br></pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)">    command="select * from %s where build_number=%s" %(cmd_param1,cmd_param2)
    <span class="gmail-k" style="font-weight:bold">return</span> command

<span class="gmail-n">f</span><span class="gmail-o" style="font-weight:bold">.</span><span class="gmail-n">addStep</span><span class="gmail-p">(</span>ShellCommand(<span class="gmail-n" style="font-family:Arial,Helvetica,sans-serif">command</span><span class="gmail-o" style="font-family:Arial,Helvetica,sans-serif;font-weight:bold">=</span><span class="gmail-s2" style="font-family:Arial,Helvetica,sans-serif;color:rgb(187,136,68)">complexCommand</span><span class="gmail-p" style="font-family:Arial,Helvetica,sans-serif">,</span><span style="font-family:Arial,Helvetica,sans-serif"> </span><span class="gmail-n" style="font-family:Arial,Helvetica,sans-serif">extract_fn</span><span class="gmail-o" style="font-family:Arial,Helvetica,sans-serif;font-weight:bold">=</span><span class="gmail-n" style="font-family:Arial,Helvetica,sans-serif">glob2list</span><span class="gmail-p" style="font-family:Arial,Helvetica,sans-serif">))</span><br></pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)"><span class="gmail-p"><br></span></pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)"><span class="gmail-p">What I am trying to do is to run the command in complexCommand, and have the output sent to stdout </span></pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)"><span class="gmail-p">so that parseComplexCommandOutput can parse it and extract the bits that I want to set a custom property.</span></pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)"><span class="gmail-p"><br></span></pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)"><span class="gmail-p">Is this possible?</span></pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)"><span class="gmail-p">Do I need a custom build step to do these 2 things?</span></pre><pre style="overflow:auto hidden;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)"><span class="gmail-p"><br></span></pre></div></div>