diff options
author | Lars Wirzenius <liw@liw.fi> | 2015-05-09 18:35:18 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2015-05-09 18:35:18 +0300 |
commit | c34a6ddd1a5c85c9cad4e589cbfbbbce0b2098f5 (patch) | |
tree | 6e7db2cd322e3d72832f58ae035f5b12c85add22 /ick | |
parent | 700a313865acda80e0d660d8aa64810c2469f7cd (diff) | |
download | ick-c34a6ddd1a5c85c9cad4e589cbfbbbce0b2098f5.tar.gz |
Add --project to choose projects to build
Diffstat (limited to 'ick')
-rwxr-xr-x | ick | 26 |
1 files changed, 19 insertions, 7 deletions
@@ -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: |