[154416] contrib/buildbot-test/master.cfg

larryv at macports.org larryv at macports.org
Sat Oct 29 03:02:31 CEST 2016


Revision: 154416
          https://trac.macports.org/changeset/154416
Author:   larryv at macports.org
Date:     2016-10-29 03:02:31 +0200 (Sat, 29 Oct 2016)
Log Message:
-----------
buildbot: Improve SetPropertyFromCommandWithPortlist

- Use `super`.

- Prefer iterables over looping.

- Replace `.strip().split()` with the equivalent `.split()`.

- Use `port_from_path` helper function.

- Prefer `format` over `%` for string formatting.

Modified Paths:
--------------
    contrib/buildbot-test/master.cfg

Modified: contrib/buildbot-test/master.cfg
===================================================================
--- contrib/buildbot-test/master.cfg	2016-10-29 00:54:44 UTC (rev 154415)
+++ contrib/buildbot-test/master.cfg	2016-10-29 01:02:31 UTC (rev 154416)
@@ -6,6 +6,7 @@
 # 'master.cfg' in your buildmaster's base directory.
 
 import datetime
+from itertools import ifilter, imap
 import json
 import os
 import re
@@ -265,28 +266,21 @@
 # custom class to make the file list available on the slave...
 class SetPropertyFromCommandWithPortlist(steps.SetPropertyFromCommand):
     def setBuild(self, build):
-        steps.SetPropertyFromCommand.setBuild(self, build)
+        super(SetPropertyFromCommandWithPortlist, self).setBuild(build)
 
-        portset = set()
         # support forced build properties
-        if self.getProperty('portlist'):
-            for v in self.getProperty('portlist').strip().split():
-                portset.add(v)
+        ports = set(self.getProperty('portlist', default='').split())
 
         # paths should be dports/category/portdir(/...)
-        for f in self.build.allFiles():
-            comps = f.split('/')
-            if len(comps) >= 3 and comps[0] == 'dports' and comps[1] != '_resources':
-                portset.add(comps[2])
+        ports.update(ifilter(None, imap(port_from_path, self.build.allFiles())))
 
-        self.setProperty('fullportlist', ' '.join(portset))
+        self.setProperty('fullportlist', ' '.join(ports))
 
     def getText(self, cmd, results):
         if self.hasProperty('subportlist'):
-            return ['Port list: %s' % (self.getProperty('subportlist'))]
-        else:
-            # let ShellCommand describe
-            return steps.ShellCommand.getText(self, cmd, results)
+            return ['Port list: {}'.format(self.getProperty('subportlist'))]
+        # let ShellCommand describe
+        return steps.ShellCommand.getText(self, cmd, results)
 
 # can't run with prefix inside the workdir in production,
 # because archives must be built with prefix=/opt/local
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-changes/attachments/20161029/c01e3425/attachment-0002.html>


More information about the macports-changes mailing list