docs: def get_template(
              self,
              url,
              dest,
              template='jinja',
              makedirs=False,
              saltenv='base',
              cachedir=None,
              **kwargs):
          '''
          Cache a file then process it as a template
          '''
          if 'env' in kwargs:
              # "env" is not supported; Use "saltenv".
              kwargs.pop('env')
  
          kwargs['saltenv'] = saltenv
          url_data = urlparse(url)
          sfn = self.cache_file(url, saltenv, cachedir=cachedir)
          if not sfn or not os.path.exists(sfn):
              return ''
          if template in salt.utils.templates.TEMPLATE_REGISTRY:
              data = salt.utils.templates.TEMPLATE_REGISTRY[template](
                  sfn,
                  **kwargs
              )
          else:
              log.error(
                  'Attempted to render template with unavailable engine %s',
                  template
              )
              return ''
          if not data['result']:
              # Failed to render the template
              log.error('Failed to render template with error: %s', data['data'])
              return ''
          if not dest:
              # No destination passed, set the dest as an extrn_files cache
              dest = self._extrn_path(url, saltenv, cachedir=cachedir)
              # If Salt generated the dest name, create any required dirs
              makedirs = True
  
          destdir = os.path.dirname(dest)
          if not os.path.isdir(destdir):
              if makedirs:
                  os.makedirs(destdir)
              else:
                  salt.utils.files.safe_rm(data['data'])
                  return ''
          shutil.move(data['data'], dest)
          return dest