diff --git a/README.rst b/README.rst index d6d26b5..7cfe40b 100644 --- a/README.rst +++ b/README.rst @@ -89,13 +89,14 @@ recommended setup ``HASS_SERVER`` and ``HASS_TOKEN`` environment variables. $ export HASS_SERVER=https://homeassistant.local:8123 $ export HASS_TOKEN= -Once that is enabled and you are using either ``zsh`` or ``bash`` run -the following to enable autocompletion for ``hass-cli`` commands. +Once that is enabled, run one of the following commands to enable +autocompletion for ``hass-cli`` commands. .. code:: bash - $ source <(hass-cli completion zsh) - + $ source <(_HASS_CLI_COMPLETE=bash_source hass-cli) # for bash + $ source <(_HASS_CLI_COMPLETE=zsh_source hass-cli) # for zsh + $ eval (_HASS_CLI_COMPLETE=fish_source hass-cli) # for fish Usage ======= @@ -492,7 +493,6 @@ Help Commands: area Get info and operate on areas from Home Assistant... - completion Output shell completion code for the specified shell (bash or... config Get configuration from a Home Assistant instance. device Get info and operate on devices from Home Assistant... discover Discovery for the local network. diff --git a/homeassistant_cli/cli.py b/homeassistant_cli/cli.py index 6285e25..b925eee 100644 --- a/homeassistant_cli/cli.py +++ b/homeassistant_cli/cli.py @@ -198,7 +198,7 @@ def _default_token() -> Optional[str]: '--table-format', default='plain', help="Which table format to use.", - autocompletion=autocompletion.table_formats, + shell_complete=autocompletion.table_formats, ) @click.option( '--sort-by', diff --git a/homeassistant_cli/plugins/area.py b/homeassistant_cli/plugins/area.py index 881a5c9..30ea0a4 100644 --- a/homeassistant_cli/plugins/area.py +++ b/homeassistant_cli/plugins/area.py @@ -77,7 +77,7 @@ def create(ctx, names): 'names', nargs=-1, required=True, - autocompletion=autocompletion.areas, # type: ignore + shell_complete=autocompletion.areas, # type: ignore ) @pass_context def delete(ctx, names): @@ -114,7 +114,7 @@ def delete(ctx, names): @click.argument( 'oldname', required=True, - autocompletion=autocompletion.areas, # type: ignore + shell_complete=autocompletion.areas, # type: ignore ) @click.argument('newname', required=True) @pass_context diff --git a/homeassistant_cli/plugins/device.py b/homeassistant_cli/plugins/device.py index 5c03dea..eadfd78 100644 --- a/homeassistant_cli/plugins/device.py +++ b/homeassistant_cli/plugins/device.py @@ -68,7 +68,7 @@ def listcmd(ctx: Configuration, devicefilter: str): @click.argument( 'area_id_or_name', required=True, - autocompletion=autocompletion.areas, # type: ignore + shell_complete=autocompletion.areas, # type: ignore ) @click.argument('names', nargs=-1, required=False) @click.option( diff --git a/homeassistant_cli/plugins/entity.py b/homeassistant_cli/plugins/entity.py index b5be2a5..52ebda4 100644 --- a/homeassistant_cli/plugins/entity.py +++ b/homeassistant_cli/plugins/entity.py @@ -61,13 +61,13 @@ def listcmd(ctx: Configuration, entityfilter: str): @click.argument( 'oldid', required=True, - autocompletion=autocompletion.entities, # type: ignore + shell_complete=autocompletion.entities, # type: ignore ) @click.option('--name', required=False) @click.argument( 'newid', required=False, - autocompletion=autocompletion.entities, # type: ignore + shell_complete=autocompletion.entities, # type: ignore ) @pass_context def rename(ctx, oldid, newid, name): diff --git a/homeassistant_cli/plugins/event.py b/homeassistant_cli/plugins/event.py index 1577a0a..15a81df 100644 --- a/homeassistant_cli/plugins/event.py +++ b/homeassistant_cli/plugins/event.py @@ -25,7 +25,7 @@ def cli(ctx): @click.argument( 'event', required=True, - autocompletion=autocompletion.events, # type: ignore + shell_complete=autocompletion.events, # type: ignore ) @click.option( '--json', diff --git a/homeassistant_cli/plugins/map.py b/homeassistant_cli/plugins/map.py index e0045d6..f1b6778 100644 --- a/homeassistant_cli/plugins/map.py +++ b/homeassistant_cli/plugins/map.py @@ -23,7 +23,7 @@ @click.argument( 'entity', required=False, - autocompletion=autocompletion.entities, # type: ignore + shell_complete=autocompletion.entities, # type: ignore ) @click.option( '--service', default='openstreetmap', type=click.Choice(SERVICE.keys()) diff --git a/homeassistant_cli/plugins/raw.py b/homeassistant_cli/plugins/raw.py index 5d6fc34..46c544e 100644 --- a/homeassistant_cli/plugins/raw.py +++ b/homeassistant_cli/plugins/raw.py @@ -42,7 +42,7 @@ def _report(ctx, cmd, method, response) -> None: @cli.command() @click.argument( - 'method', autocompletion=autocompletion.api_methods # type: ignore + 'method', shell_complete=autocompletion.api_methods # type: ignore ) @pass_context def get(ctx: Configuration, method): @@ -54,7 +54,7 @@ def get(ctx: Configuration, method): @cli.command() @click.argument( - 'method', autocompletion=autocompletion.api_methods # type: ignore + 'method', shell_complete=autocompletion.api_methods # type: ignore ) @click.option('--json') @pass_context @@ -72,7 +72,7 @@ def post(ctx: Configuration, method, json): @cli.command("ws") @click.argument( - 'wstype', autocompletion=autocompletion.wsapi_methods # type: ignore + 'wstype', shell_complete=autocompletion.wsapi_methods # type: ignore ) @click.option('--json') @pass_context diff --git a/homeassistant_cli/plugins/service.py b/homeassistant_cli/plugins/service.py index e762829..e1c840f 100644 --- a/homeassistant_cli/plugins/service.py +++ b/homeassistant_cli/plugins/service.py @@ -80,7 +80,7 @@ def list_cmd(ctx: Configuration, servicefilter): @click.argument( 'service', required=True, - autocompletion=autocompletion.services, # type: ignore + shell_complete=autocompletion.services, # type: ignore ) @click.option( '--arguments', help="Comma separated key/value pairs to use as arguments." diff --git a/homeassistant_cli/plugins/state.py b/homeassistant_cli/plugins/state.py index 2ea1dff..05bbb1e 100644 --- a/homeassistant_cli/plugins/state.py +++ b/homeassistant_cli/plugins/state.py @@ -26,7 +26,7 @@ def cli(ctx): @click.argument( 'entity', required=True, - autocompletion=autocompletion.entities, # type: ignore + shell_complete=autocompletion.entities, # type: ignore ) @pass_context def get(ctx: Configuration, entity): @@ -50,7 +50,7 @@ def get(ctx: Configuration, entity): @click.argument( 'entity', required=True, - autocompletion=autocompletion.entities, # type: ignore + shell_complete=autocompletion.entities, # type: ignore ) @pass_context def delete(ctx: Configuration, entity): @@ -95,7 +95,7 @@ def list(ctx, entityfilter): @click.argument( 'entity', required=True, - autocompletion=autocompletion.entities, # type: ignore + shell_complete=autocompletion.entities, # type: ignore ) @click.argument('newstate', required=False) @click.option( @@ -207,7 +207,7 @@ def _homeassistant_cmd(ctx: Configuration, entities, cmd, action): 'entities', nargs=-1, required=True, - autocompletion=autocompletion.entities, # type: ignore + shell_complete=autocompletion.entities, # type: ignore ) @pass_context def toggle(ctx: Configuration, entities): @@ -221,7 +221,7 @@ def toggle(ctx: Configuration, entities): 'entities', nargs=-1, required=True, - autocompletion=autocompletion.entities, # type: ignore + shell_complete=autocompletion.entities, # type: ignore ) @pass_context def off_cmd(ctx: Configuration, entities): @@ -235,7 +235,7 @@ def off_cmd(ctx: Configuration, entities): 'entities', nargs=-1, required=True, - autocompletion=autocompletion.entities, # type: ignore + shell_complete=autocompletion.entities, # type: ignore ) @pass_context def on_cmd(ctx: Configuration, entities): @@ -249,7 +249,7 @@ def on_cmd(ctx: Configuration, entities): 'entities', nargs=-1, required=True, - autocompletion=autocompletion.entities, # type: ignore + shell_complete=autocompletion.entities, # type: ignore ) @click.option( '--since',