code: def _run_hook_from_repo_dir(repo_dir, hook_name, project_dir, context,
                              delete_project_on_failure):
      
      with work_in(repo_dir):
          try:
              run_hook(hook_name, project_dir, context)
          except FailedHookException:
              if delete_project_on_failure:
                  rmtree(project_dir)
              logger.error(
                  "Stopping generation because {} hook "
                  "script didn't exit successfully".format(hook_name)
              )
              raise
docs: Run hook from repo directory, clean project directory if hook fails.
  
      :param repo_dir: Project template input directory.
      :param hook_name: The hook to execute.
      :param project_dir: The directory to execute the script from.
      :param context: Cookiecutter project context.
      :param delete_project_on_failure: Delete the project directory on hook
          failure?