docs: def makeinit(mod_dpath, exclude_modnames=[], use_star=False):
      r"""
      Args:
          mod_dpath (str):
          exclude_modnames (list): (Defaults to [])
          use_star (bool): (Defaults to False)
  
      Returns:
          str: init_codeblock
  
      CommandLine:
          python -m utool.util_autogen makeinit --modname=ibeis.algo
  
      Example:
          >>> # DISABLE_DOCTEST
          >>> # SCRIPT
          >>> from utool.util_autogen import *  # NOQA
          >>> import utool as ut
          >>> modname = ut.get_argval('--modname', str, default=None)
          >>> mod_dpath = (os.getcwd() if modname is None else
          >>>              ut.get_modpath(modname, prefer_pkg=True))
          >>> mod_dpath = ut.unixpath(mod_dpath)
          >>> mod_fpath = join(mod_dpath, '__init__.py')
          >>> exclude_modnames = ut.get_argval(('--exclude', '-x'), list, default=[])
          >>> use_star = ut.get_argflag('--star')
          >>> init_codeblock = makeinit(mod_dpath, exclude_modnames, use_star)
          >>> ut.dump_autogen_code(mod_fpath, init_codeblock)
      """
      from utool._internal import util_importer
      import utool as ut
      module_name = ut.get_modname_from_modpath(mod_dpath)
      IMPORT_TUPLES = util_importer.make_import_tuples(mod_dpath, exclude_modnames=exclude_modnames)
      initstr = util_importer.make_initstr(module_name, IMPORT_TUPLES)
      regen_command = 'cd %s\n' % (mod_dpath)
      regen_command += '    makeinit.py'
      regen_command += ' --modname={modname}'.format(modname=module_name)
      if use_star:
          regen_command += ' --star'
      if len(exclude_modnames ) > 0:
          regen_command += ' -x ' + ' '.join(exclude_modnames)
  
      regen_block = (ut.codeblock('''
      """
      Regen Command:
          {regen_command}
      """
      ''').format(regen_command=regen_command))
  
      importstar_codeblock = ut.codeblock(
          '''
          """
          python -c "import {module_name}" --dump-{module_name}-init
          python -c "import {module_name}" --update-{module_name}-init
          """
          __DYNAMIC__ = True
          if __DYNAMIC__:
              # TODO: import all utool external prereqs. Then the imports will not import
              # anything that has already in a toplevel namespace
              # COMMENTED OUT FOR FROZEN __INIT__
              # Dynamically import listed util libraries and their members.
              from utool._internal import util_importer
              # FIXME: this might actually work with rrrr, but things arent being
              # reimported because they are already in the modules list
              import_execstr = util_importer.dynamic_import(__name__, IMPORT_TUPLES)
              exec(import_execstr)
              DOELSE = False
          else:
              # Do the nonexec import (can force it to happen no matter what if alwyas set
              # to True)
              DOELSE = True
  
          if DOELSE:
              # <AUTOGEN_INIT>
              pass
              # </AUTOGEN_INIT>
          '''.format(module_name=module_name)
      )
  
      ts_line = '# Autogenerated on {ts}'.format(ts=ut.get_timestamp('printable'))
  
      init_codeblock_list = ['# -*- coding: utf-8 -*-', ts_line]
      init_codeblock_list.append(initstr)
      init_codeblock_list.append('\nIMPORT_TUPLES = ' + ut.repr4(IMPORT_TUPLES))
      if use_star:
          init_codeblock_list.append(importstar_codeblock)
      init_codeblock_list.append(regen_block)
  
      init_codeblock = '\n'.join(init_codeblock_list)
      return init_codeblock