class Samovar::Command

def system!(*args, **options)

def system!(*args, **options)
	command_line = args.join(' ')
	
	pid = Process.spawn(*args, **options)
	
	puts Rainbow(command_line).color(:blue)
	
	status = Process.waitpid2(pid).last
	
	if status.success?
		return true
	else
		raise SystemError.new("Command #{command_line.dump} failed: #{status.to_s}")
	end
rescue Errno::ENOENT
	raise SystemError.new("Command #{command_line.dump} failed: #{$!}")
end