docs: def on_plugin_install(plugin_directory, ostream=sys.stdout):
      '''
      Run ``on_plugin_install`` script for specified plugin directory (if
      available).
  
      **TODO** Add support for Linux, OSX.
  
      Parameters
      ----------
      plugin_directory : str
          File system to plugin directory.
      ostream :file-like
          Output stream for status messages (default: ``sys.stdout``).
      '''
      current_directory = os.getcwd()
  
      plugin_directory = ph.path(plugin_directory).realpath()
      print >> ostream, ('Processing post-install hook for: '
                          '{}'.format(plugin_directory.name))
  
      hooks_dir_i = plugin_directory.joinpath('hooks/Windows').realpath()
      hook_path_i = hooks_dir_i.joinpath('on_plugin_install.bat')
  
      if hook_path_i.isfile():
          logger.info('Processing post-install hook for: %s',
                      plugin_directory.name)
          os.chdir(hook_path_i.parent)
          try:
              process = sp.Popen([hook_path_i, sys.executable], shell=True,
                                 stdin=sp.PIPE)
              # Emulate return key press in case plugin uses
              # "Press <enter> key to continue..." prompt.
              process.communicate(input='\r\n')
              if process.returncode != 0:
                  raise RuntimeError('Process return code == {}'
                                     .format(process.returncode))
              return hook_path_i
          except Exception, exception:
              raise RuntimeError('Error running: {}\n{}'.format(hook_path_i,
                                                                exception))
          finally:
              os.chdir(current_directory)