#NEWLINE# def executable_path( conn , executable ) : #NEWLINE# #INDENT# '\n    Remote validator that accepts a connection object to ensure that a certain\n    executable is available returning its full path if so.\n\n    Otherwise an exception with thorough details will be raised, informing the\n    user that the executable was not found.\n    ' #NEWLINE# executable_path = conn . remote_module . which ( executable ) #NEWLINE# if ( not executable_path ) : #NEWLINE# #INDENT# raise ExecutableNotFound ( executable , conn . hostname ) #NEWLINE# #UNINDENT# return executable_path