Example #1
0
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)