docs: def get_dir(self, path, dest='', saltenv='base', gzip=None,
                  cachedir=None):
          '''
          Get a directory recursively from the salt-master
          '''
          ret = []
          # Strip trailing slash
          path = self._check_proto(path).rstrip('/')
          # Break up the path into a list containing the bottom-level directory
          # (the one being recursively copied) and the directories preceding it
          separated = path.rsplit('/', 1)
          if len(separated) != 2:
              # No slashes in path. (This means all files in saltenv will be
              # copied)
              prefix = ''
          else:
              prefix = separated[0]
  
          # Copy files from master
          for fn_ in self.file_list(saltenv, prefix=path):
              # Prevent files in "salt://foobar/" (or salt://foo.sh) from
              # matching a path of "salt://foo"
              try:
                  if fn_[len(path)] != '/':
                      continue
              except IndexError:
                  continue
              # Remove the leading directories from path to derive
              # the relative path on the minion.
              minion_relpath = fn_[len(prefix):].lstrip('/')
              ret.append(
                 self.get_file(
                    salt.utils.url.create(fn_),
                    '{0}/{1}'.format(dest, minion_relpath),
                    True, saltenv, gzip
                 )
              )
          # Replicate empty dirs from master
          try:
              for fn_ in self.file_list_emptydirs(saltenv, prefix=path):
                  # Prevent an empty dir "salt://foobar/" from matching a path of
                  # "salt://foo"
                  try:
                      if fn_[len(path)] != '/':
                          continue
                  except IndexError:
                      continue
                  # Remove the leading directories from path to derive
                  # the relative path on the minion.
                  minion_relpath = fn_[len(prefix):].lstrip('/')
                  minion_mkdir = '{0}/{1}'.format(dest, minion_relpath)
                  if not os.path.isdir(minion_mkdir):
                      os.makedirs(minion_mkdir)
                  ret.append(minion_mkdir)
          except TypeError:
              pass
          ret.sort()
          return ret