docs: def AvailableTools(path, tools=None, branch='master', version='HEAD', core=False):
      """
      Return list of possible tools in repo for the given version and branch or
      take a list of tools to get paths for specific version and branch
      tools is a list of tuples: (tool name, branch, version)
      """
      def get_dockerfiles(matches, path, tool=None):
          for root, _, filenames in walk(path):
              files = fnmatch.filter(filenames, 'Dockerfile*')
              # append additional identifiers to tools if multiple in same
              # directory
              add_info = len(files) > 1
              for f in files:
                  if core and 'core' not in root:
                      pass
                  else:
                      addtl_info = ''
                      if add_info:
                          # @ will be delimiter symbol for multi-tools
                          try:
                              addtl_info = '@' + f.split('.')[1]
                          except Exception as e:
                              addtl_info = '@unspecified'
                      if tool:
                          if root.split(path)[1].rsplit('/', 1)[-1].lower() == tool:
                              matches.append((root.split(path)[1] + addtl_info,
                                              version))
                          elif tool == '@':
                              matches.append(('' + addtl_info, version))
                      else:
                          matches.append(
                              (root.split(path)[1] + addtl_info, version))
          return matches
  
      matches = []
      if tools:
          for tool in tools:
              name = tool[0]
              branch = tool[1]
              version = tool[2]
              status = Checkout(path, branch=branch, version=version)
              if not status[0]:
                  logger.error('Unable to checkout: {0} {1} {2} because: {3}'.format(
                      path, branch, version, status[1]))
              matches = get_dockerfiles(matches, path, tool=name)
      else:
          status = Checkout(path, branch=branch, version=version)
          if not status[0]:
              logger.error('Unable to checkout: {0} {1} {2} because: {3}'.format(
                  path, branch, version, status[1]))
          matches = get_dockerfiles(matches, path)
      return matches