code: def get_invocation_command(toolset, tool, user_provided_command = [],
                             additional_paths = [], path_last = False):
      
      assert isinstance(toolset, basestring)
      assert isinstance(tool, basestring)
      assert is_iterable_typed(user_provided_command, basestring)
      assert is_iterable_typed(additional_paths, basestring) or additional_paths is None
      assert isinstance(path_last, (int, bool))
  
      result = get_invocation_command_nodefault(toolset, tool,
                                                user_provided_command,
                                                additional_paths,
                                                path_last)
  
      if not result:
          if user_provided_command:
              result = user_provided_command[0]
          else:
              result = tool
  
      assert(isinstance(result, str))
  
      return result
docs: Same as get_invocation_command_nodefault, except that if no tool is found,
          returns either the user-provided-command, if present, or the 'tool' parameter.