summaryrefslogtreecommitdiff
path: root/ick
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2015-05-09 18:35:18 +0300
committerLars Wirzenius <liw@liw.fi>2015-05-09 18:35:18 +0300
commitc34a6ddd1a5c85c9cad4e589cbfbbbce0b2098f5 (patch)
tree6e7db2cd322e3d72832f58ae035f5b12c85add22 /ick
parent700a313865acda80e0d660d8aa64810c2469f7cd (diff)
downloadick-c34a6ddd1a5c85c9cad4e589cbfbbbce0b2098f5.tar.gz
Add --project to choose projects to build
Diffstat (limited to 'ick')
-rwxr-xr-xick26
1 files changed, 19 insertions, 7 deletions
diff --git a/ick b/ick
index 4400ac7..50cbe06 100755
--- a/ick
+++ b/ick
@@ -31,7 +31,11 @@ class Ick(cliapp.Application):
def add_settings(self):
self.settings.string_list(
['target', 't'],
- 'run tests only on TARGET (can be used multiple times)')
+ 'run build only on TARGET (can be used multiple times)')
+
+ self.settings.string_list(
+ ['project', 'p'],
+ 'only build PROJECT (can be used multiple times)')
def process_args(self, args):
filename = self.parse_command_line_args(args)
@@ -50,17 +54,25 @@ class Ick(cliapp.Application):
def build_projects(self, ick):
targets = self.get_targets(ick)
- projects = ick.get('projects', {})
+ projects = self.get_projects(ick)
for project_name, project in projects.items():
self.build_project(project_name, project, targets)
def get_targets(self, ick):
- targets = ick.get('targets', {})
- if self.settings['target']:
- return dict(
- (name, targets[name]) for name in self.settings['target'])
+ return self.pick_from_dict(
+ ick.get('targets', {}),
+ self.settings['target'])
+
+ def pick_from_dict(self, items, names):
+ if names:
+ return dict((name, items[name]) for name in names)
else:
- return targets
+ return items
+
+ def get_projects(self, ick):
+ return self.pick_from_dict(
+ ick.get('projects', {}),
+ self.settings['project'])
def build_project(self, project_name, project, targets):
with self.logger: