class MavenExecutor: COMMAND = 'mvn' def __init__(self, phase, parameters): self.phase = phase self.parameters = parameters self.painter = Painter() def execute(self, execution_targets): self.print_build_order(execution_targets) for target in execution_targets: self.painter.print_bright_purple( '[INFO] executing %s ' % (self.execute_command(target)) ) return_code = system(self.execute_command(target)) if return_code != 0: self.painter.print_red('[ERROR] on %s' % target) self.notify('maven build error') sys.exit self.painter.print_green('[SUCCESS]') self.notify('maven build successful') def print_build_order(self, execution_targets): self.painter.print_bright_purple('Will execute %s %s in :' % (MavenExecutor.COMMAND, self.phase)) for target in execution_targets: self.painter.print_bright_purple('\t%s' % target) def execute_command(self, target): return '%s %s %s -f %s/pom.xml' % (MavenExecutor.COMMAND, self.phase, self.parameters, target) def notify(self, message): system('notify-send --urgency=critical "%s"' % message)