prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Docs contains template option for init role that actually does not exists
  There are option documented here https://molecule.readthedocs.io/en/latest/usage.html#cmdoption-molecule-init-role-foo-template-path-arg-molecule
  ```
  % molecule --version            
  molecule 3.0.8
     ansible==2.9.11 python==3.8
  
  ```
  but missed in command line
  ```
  % molecule init role --template 111
  Usage: molecule init role [OPTIONS] ROLE_NAME
  Try 'molecule init role --help' for help.
  
  Error: no such option: --template
  zsh: exit 2     molecule init role --template 111
  ```
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `molecule/command/init/role.py`
  Content:
  ```
  1 #  Copyright (c) 2015-2018 Cisco Systems, Inc.
  2 #
  3 #  Permission is hereby granted, free of charge, to any person obtaining a copy
  4 #  of this software and associated documentation files (the "Software"), to
  5 #  deal in the Software without restriction, including without limitation the
  6 #  rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
  7 #  sell copies of the Software, and to permit persons to whom the Software is
  8 #  furnished to do so, subject to the following conditions:
  9 #
  10 #  The above copyright notice and this permission notice shall be included in
  11 #  all copies or substantial portions of the Software.
  12 #
  13 #  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  14 #  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  15 #  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  16 #  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  17 #  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  18 #  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  19 #  DEALINGS IN THE SOFTWARE.
  20 """Base class used by init role command."""
  21 
  22 import os
  23 import subprocess
  24 from subprocess import check_output
  25 
  26 import click
  27 
  28 from molecule import api, logger, util
  29 from molecule.command import base as command_base
  30 from molecule.command.init import base
  31 from molecule.config import DEFAULT_DRIVER
  32 
  33 LOG = logger.get_logger(__name__)
  34 
  35 
  36 class Role(base.Base):
  37     """
  38     Init Role Command Class.
  39 
  40     .. program:: molecule init role foo
  41 
  42     .. option:: molecule init role foo
  43 
  44         Initialize a new role.
  45 
  46     .. program:: molecule init role foo --template path
  47 
  48     .. option:: molecule init role foo --template path
  49 
  50         Initialize a new role using ansible-galaxy and include default
  51         molecule directory. Please refer to the ``init scenario``
  52         command in order to generate a custom ``molecule`` scenario.
  53     """
  54 
  55     def __init__(self, command_args):
  56         """Construct Role."""
  57         self._command_args = command_args
  58 
  59     def execute(self):
  60         """
  61         Execute the actions necessary to perform a `molecule init role` and \
  62         returns None.
  63 
  64         :return: None
  65         """
  66         role_name = self._command_args["role_name"]
  67         role_directory = os.getcwd()
  68         msg = "Initializing new role {}...".format(role_name)
  69         LOG.info(msg)
  70 
  71         if os.path.isdir(role_name):
  72             msg = ("The directory {} exists. " "Cannot create new role.").format(
  73                 role_name
  74             )
  75             util.sysexit_with_message(msg)
  76 
  77         try:
  78             cmd = ["ansible-galaxy", "init", "-v", "--offline", role_name]
  79             check_output(cmd, stderr=subprocess.STDOUT, universal_newlines=True)
  80         except Exception as e:
  81             util.sysexit_with_message(
  82                 "Galaxy failed to create role: %s: %s" % (e, e.output)
  83             )
  84 
  85         scenario_base_directory = os.path.join(role_directory, role_name)
  86         templates = [
  87             api.drivers()[self._command_args["driver_name"]].template_dir(),
  88             api.verifiers()[self._command_args["verifier_name"]].template_dir(),
  89         ]
  90         self._process_templates("molecule", self._command_args, role_directory)
  91         for template in templates:
  92             self._process_templates(
  93                 template, self._command_args, scenario_base_directory
  94             )
  95 
  96         role_directory = os.path.join(role_directory, role_name)
  97         msg = "Initialized role in {} successfully.".format(role_directory)
  98         LOG.success(msg)
  99 
  100 
  101 @command_base.click_command_ex()
  102 @click.pass_context
  103 @click.option(
  104     "--dependency-name",
  105     type=click.Choice(["galaxy"]),
  106     default="galaxy",
  107     help="Name of dependency to initialize. (galaxy)",
  108 )
  109 @click.option(
  110     "--driver-name",
  111     "-d",
  112     type=click.Choice([str(s) for s in api.drivers()]),
  113     default=DEFAULT_DRIVER,
  114     help=f"Name of driver to initialize. ({DEFAULT_DRIVER})",
  115 )
  116 @click.option(
  117     "--lint-name",
  118     type=click.Choice(["yamllint"]),
  119     default="yamllint",
  120     help="Name of lint to initialize. (yamllint)",
  121 )
  122 @click.option(
  123     "--provisioner-name",
  124     type=click.Choice(["ansible"]),
  125     default="ansible",
  126     help="Name of provisioner to initialize. (ansible)",
  127 )
  128 @click.argument("ROLE-NAME", required=True)
  129 @click.option(
  130     "--verifier-name",
  131     type=click.Choice([str(s) for s in api.verifiers()]),
  132     default="ansible",
  133     help="Name of verifier to initialize. (ansible)",
  134 )
  135 def role(
  136     ctx,
  137     dependency_name,
  138     driver_name,
  139     lint_name,
  140     provisioner_name,
  141     role_name,
  142     verifier_name,
  143 ):  # pragma: no cover
  144     """Initialize a new role for use with Molecule."""
  145     command_args = {
  146         "dependency_name": dependency_name,
  147         "driver_name": driver_name,
  148         "lint_name": lint_name,
  149         "provisioner_name": provisioner_name,
  150         "role_name": role_name,
  151         "scenario_name": command_base.MOLECULE_DEFAULT_SCENARIO_NAME,
  152         "subcommand": __name__,
  153         "verifier_name": verifier_name,
  154     }
  155 
  156     r = Role(command_args)
  157     r.execute()
  158
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/molecule/command/init/role.py b/molecule/command/init/role.py
  --- a/molecule/command/init/role.py
  +++ b/molecule/command/init/role.py
  @@ -43,10 +43,6 @@
   
           Initialize a new role.
   
  -    .. program:: molecule init role foo --template path
  -
  -    .. option:: molecule init role foo --template path
  -
           Initialize a new role using ansible-galaxy and include default
           molecule directory. Please refer to the ``init scenario``
           command in order to generate a custom ``molecule`` scenario.
  
verification_info: {"golden_diff": "diff --git a/molecule/command/init/role.py b/molecule/command/init/role.py\n--- a/molecule/command/init/role.py\n+++ b/molecule/command/init/role.py\n@@ -43,10 +43,6 @@\n \n         Initialize a new role.\n \n-    .. program:: molecule init role foo --template path\n-\n-    .. option:: molecule init role foo --template path\n-\n         Initialize a new role using ansible-galaxy and include default\n         molecule directory. Please refer to the ``init scenario``\n         command in order to generate a custom ``molecule`` scenario.\n", "issue": "Docs contains template option for init role that actually does not exists\nThere are option documented here https://molecule.readthedocs.io/en/latest/usage.html#cmdoption-molecule-init-role-foo-template-path-arg-molecule\r\n```\r\n% molecule --version            \r\nmolecule 3.0.8\r\n   ansible==2.9.11 python==3.8\r\n\r\n```\r\nbut missed in command line\r\n```\r\n% molecule init role --template 111\r\nUsage: molecule init role [OPTIONS] ROLE_NAME\r\nTry 'molecule init role --help' for help.\r\n\r\nError: no such option: --template\r\nzsh: exit 2     molecule init role --template 111\r\n```\n", "before_files": [{"content": "#  Copyright (c) 2015-2018 Cisco Systems, Inc.\n#\n#  Permission is hereby granted, free of charge, to any person obtaining a copy\n#  of this software and associated documentation files (the \"Software\"), to\n#  deal in the Software without restriction, including without limitation the\n#  rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n#  sell copies of the Software, and to permit persons to whom the Software is\n#  furnished to do so, subject to the following conditions:\n#\n#  The above copyright notice and this permission notice shall be included in\n#  all copies or substantial portions of the Software.\n#\n#  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n#  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n#  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n#  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n#  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n#  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n#  DEALINGS IN THE SOFTWARE.\n\"\"\"Base class used by init role command.\"\"\"\n\nimport os\nimport subprocess\nfrom subprocess import check_output\n\nimport click\n\nfrom molecule import api, logger, util\nfrom molecule.command import base as command_base\nfrom molecule.command.init import base\nfrom molecule.config import DEFAULT_DRIVER\n\nLOG = logger.get_logger(__name__)\n\n\nclass Role(base.Base):\n    \"\"\"\n    Init Role Command Class.\n\n    .. program:: molecule init role foo\n\n    .. option:: molecule init role foo\n\n        Initialize a new role.\n\n    .. program:: molecule init role foo --template path\n\n    .. option:: molecule init role foo --template path\n\n        Initialize a new role using ansible-galaxy and include default\n        molecule directory. Please refer to the ``init scenario``\n        command in order to generate a custom ``molecule`` scenario.\n    \"\"\"\n\n    def __init__(self, command_args):\n        \"\"\"Construct Role.\"\"\"\n        self._command_args = command_args\n\n    def execute(self):\n        \"\"\"\n        Execute the actions necessary to perform a `molecule init role` and \\\n        returns None.\n\n        :return: None\n        \"\"\"\n        role_name = self._command_args[\"role_name\"]\n        role_directory = os.getcwd()\n        msg = \"Initializing new role {}...\".format(role_name)\n        LOG.info(msg)\n\n        if os.path.isdir(role_name):\n            msg = (\"The directory {} exists. \" \"Cannot create new role.\").format(\n                role_name\n            )\n            util.sysexit_with_message(msg)\n\n        try:\n            cmd = [\"ansible-galaxy\", \"init\", \"-v\", \"--offline\", role_name]\n            check_output(cmd, stderr=subprocess.STDOUT, universal_newlines=True)\n        except Exception as e:\n            util.sysexit_with_message(\n                \"Galaxy failed to create role: %s: %s\" % (e, e.output)\n            )\n\n        scenario_base_directory = os.path.join(role_directory, role_name)\n        templates = [\n            api.drivers()[self._command_args[\"driver_name\"]].template_dir(),\n            api.verifiers()[self._command_args[\"verifier_name\"]].template_dir(),\n        ]\n        self._process_templates(\"molecule\", self._command_args, role_directory)\n        for template in templates:\n            self._process_templates(\n                template, self._command_args, scenario_base_directory\n            )\n\n        role_directory = os.path.join(role_directory, role_name)\n        msg = \"Initialized role in {} successfully.\".format(role_directory)\n        LOG.success(msg)\n\n\n@command_base.click_command_ex()\n@click.pass_context\n@click.option(\n    \"--dependency-name\",\n    type=click.Choice([\"galaxy\"]),\n    default=\"galaxy\",\n    help=\"Name of dependency to initialize. (galaxy)\",\n)\n@click.option(\n    \"--driver-name\",\n    \"-d\",\n    type=click.Choice([str(s) for s in api.drivers()]),\n    default=DEFAULT_DRIVER,\n    help=f\"Name of driver to initialize. ({DEFAULT_DRIVER})\",\n)\n@click.option(\n    \"--lint-name\",\n    type=click.Choice([\"yamllint\"]),\n    default=\"yamllint\",\n    help=\"Name of lint to initialize. (yamllint)\",\n)\n@click.option(\n    \"--provisioner-name\",\n    type=click.Choice([\"ansible\"]),\n    default=\"ansible\",\n    help=\"Name of provisioner to initialize. (ansible)\",\n)\n@click.argument(\"ROLE-NAME\", required=True)\n@click.option(\n    \"--verifier-name\",\n    type=click.Choice([str(s) for s in api.verifiers()]),\n    default=\"ansible\",\n    help=\"Name of verifier to initialize. (ansible)\",\n)\ndef role(\n    ctx,\n    dependency_name,\n    driver_name,\n    lint_name,\n    provisioner_name,\n    role_name,\n    verifier_name,\n):  # pragma: no cover\n    \"\"\"Initialize a new role for use with Molecule.\"\"\"\n    command_args = {\n        \"dependency_name\": dependency_name,\n        \"driver_name\": driver_name,\n        \"lint_name\": lint_name,\n        \"provisioner_name\": provisioner_name,\n        \"role_name\": role_name,\n        \"scenario_name\": command_base.MOLECULE_DEFAULT_SCENARIO_NAME,\n        \"subcommand\": __name__,\n        \"verifier_name\": verifier_name,\n    }\n\n    r = Role(command_args)\n    r.execute()\n", "path": "molecule/command/init/role.py"}], "after_files": [{"content": "#  Copyright (c) 2015-2018 Cisco Systems, Inc.\n#\n#  Permission is hereby granted, free of charge, to any person obtaining a copy\n#  of this software and associated documentation files (the \"Software\"), to\n#  deal in the Software without restriction, including without limitation the\n#  rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n#  sell copies of the Software, and to permit persons to whom the Software is\n#  furnished to do so, subject to the following conditions:\n#\n#  The above copyright notice and this permission notice shall be included in\n#  all copies or substantial portions of the Software.\n#\n#  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n#  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n#  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n#  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n#  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n#  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n#  DEALINGS IN THE SOFTWARE.\n\"\"\"Base class used by init role command.\"\"\"\n\nimport os\nimport subprocess\nfrom subprocess import check_output\n\nimport click\n\nfrom molecule import api, logger, util\nfrom molecule.command import base as command_base\nfrom molecule.command.init import base\nfrom molecule.config import DEFAULT_DRIVER\n\nLOG = logger.get_logger(__name__)\n\n\nclass Role(base.Base):\n    \"\"\"\n    Init Role Command Class.\n\n    .. program:: molecule init role foo\n\n    .. option:: molecule init role foo\n\n        Initialize a new role.\n\n        Initialize a new role using ansible-galaxy and include default\n        molecule directory. Please refer to the ``init scenario``\n        command in order to generate a custom ``molecule`` scenario.\n    \"\"\"\n\n    def __init__(self, command_args):\n        \"\"\"Construct Role.\"\"\"\n        self._command_args = command_args\n\n    def execute(self):\n        \"\"\"\n        Execute the actions necessary to perform a `molecule init role` and \\\n        returns None.\n\n        :return: None\n        \"\"\"\n        role_name = self._command_args[\"role_name\"]\n        role_directory = os.getcwd()\n        msg = \"Initializing new role {}...\".format(role_name)\n        LOG.info(msg)\n\n        if os.path.isdir(role_name):\n            msg = (\"The directory {} exists. \" \"Cannot create new role.\").format(\n                role_name\n            )\n            util.sysexit_with_message(msg)\n\n        try:\n            cmd = [\"ansible-galaxy\", \"init\", \"-v\", \"--offline\", role_name]\n            check_output(cmd, stderr=subprocess.STDOUT, universal_newlines=True)\n        except Exception as e:\n            util.sysexit_with_message(\n                \"Galaxy failed to create role: %s: %s\" % (e, e.output)\n            )\n\n        scenario_base_directory = os.path.join(role_directory, role_name)\n        templates = [\n            api.drivers()[self._command_args[\"driver_name\"]].template_dir(),\n            api.verifiers()[self._command_args[\"verifier_name\"]].template_dir(),\n        ]\n        self._process_templates(\"molecule\", self._command_args, role_directory)\n        for template in templates:\n            self._process_templates(\n                template, self._command_args, scenario_base_directory\n            )\n\n        role_directory = os.path.join(role_directory, role_name)\n        msg = \"Initialized role in {} successfully.\".format(role_directory)\n        LOG.success(msg)\n\n\n@command_base.click_command_ex()\n@click.pass_context\n@click.option(\n    \"--dependency-name\",\n    type=click.Choice([\"galaxy\"]),\n    default=\"galaxy\",\n    help=\"Name of dependency to initialize. (galaxy)\",\n)\n@click.option(\n    \"--driver-name\",\n    \"-d\",\n    type=click.Choice([str(s) for s in api.drivers()]),\n    default=DEFAULT_DRIVER,\n    help=f\"Name of driver to initialize. ({DEFAULT_DRIVER})\",\n)\n@click.option(\n    \"--lint-name\",\n    type=click.Choice([\"yamllint\"]),\n    default=\"yamllint\",\n    help=\"Name of lint to initialize. (yamllint)\",\n)\n@click.option(\n    \"--provisioner-name\",\n    type=click.Choice([\"ansible\"]),\n    default=\"ansible\",\n    help=\"Name of provisioner to initialize. (ansible)\",\n)\n@click.argument(\"ROLE-NAME\", required=True)\n@click.option(\n    \"--verifier-name\",\n    type=click.Choice([str(s) for s in api.verifiers()]),\n    default=\"ansible\",\n    help=\"Name of verifier to initialize. (ansible)\",\n)\ndef role(\n    ctx,\n    dependency_name,\n    driver_name,\n    lint_name,\n    provisioner_name,\n    role_name,\n    verifier_name,\n):  # pragma: no cover\n    \"\"\"Initialize a new role for use with Molecule.\"\"\"\n    command_args = {\n        \"dependency_name\": dependency_name,\n        \"driver_name\": driver_name,\n        \"lint_name\": lint_name,\n        \"provisioner_name\": provisioner_name,\n        \"role_name\": role_name,\n        \"scenario_name\": command_base.MOLECULE_DEFAULT_SCENARIO_NAME,\n        \"subcommand\": __name__,\n        \"verifier_name\": verifier_name,\n    }\n\n    r = Role(command_args)\n    r.execute()\n", "path": "molecule/command/init/role.py"}]}