diff --git a/cli/src/zshell/__init__.py b/cli/src/zshell/__init__.py index 57ba1c6..023f0ae 100644 --- a/cli/src/zshell/__init__.py +++ b/cli/src/zshell/__init__.py @@ -2,7 +2,6 @@ from __future__ import annotations import sys from pathlib import Path -import click import typer from typer._completion_shared import install, _get_shell_name from zshell.subcommands import shell, scheme, screenshot, wallpaper, record @@ -30,16 +29,16 @@ def _completion_installed() -> bool: def _install_completion() -> None: if _completion_installed(): - click.echo("zshell-cli: Shell completion already installed.") + print("zshell-cli: Shell completion already installed.") raise typer.Exit() shell = _get_shell_name() if shell is None: - click.echo("zshell-cli: Unable to detect shell type.", err=True) + print("zshell-cli: Unable to detect shell type.", file=sys.stderr) raise typer.Exit(code=1) try: _, path = install(prog_name="zshell-cli") - click.secho(f"zshell-cli: Shell completion installed ({shell}: {path})", fg="green") - click.echo("zshell-cli: Restart your shell or source the file to enable tab-completion.") + print(f"zshell-cli: Shell completion installed ({shell}: {path})") + print("zshell-cli: Restart your shell or source the file to enable tab-completion.") except Exception: pass @@ -49,5 +48,5 @@ def main() -> None: _install_completion() return if sys.stdout.isatty() and not _completion_installed(): - click.echo("zshell-cli: Tip: run with --install-autocomplete for tab completion.", err=True) + print("zshell-cli: Tip: run with --install-autocomplete for tab completion.", file=sys.stderr) app() diff --git a/cli/src/zshell/subcommands/shell.py b/cli/src/zshell/subcommands/shell.py index 4b30da7..f0ce45f 100644 --- a/cli/src/zshell/subcommands/shell.py +++ b/cli/src/zshell/subcommands/shell.py @@ -2,7 +2,6 @@ import subprocess import sys import time -import click import typer args = ["qs", "-c", "zshell"] @@ -14,7 +13,8 @@ app = typer.Typer() def kill(): result = subprocess.run(args + ["kill"], capture_output=True) if result.returncode != 0: - raise click.ClickException("No running instance to kill.") + sys.stderr.write("No running instance to kill.\n") + sys.exit(1) sys.stderr.write(result.stderr.decode()) @@ -23,10 +23,12 @@ def start_instance(no_daemon: bool = False) -> None: stdout = result.stdout.decode().strip() if stdout: if "already running" in stdout.lower(): - raise click.ClickException(stdout) + sys.stderr.write(stdout + "\n") + sys.exit(1) if result.returncode != 0: stderr = result.stderr.decode().strip() - raise click.ClickException(stderr) + sys.stderr.write(stderr + "\n") + sys.exit(1) @app.command() @@ -50,7 +52,9 @@ def restart(no_daemon: bool = False): def show(): result = subprocess.run(args + ["ipc"] + ["show"], capture_output=True) if result.returncode != 0: - raise click.ClickException(result.stderr.decode().strip()) + sys.stderr.write(result.stderr.decode()) + sys.exit(1) + sys.stdout.write(result.stdout.decode()) sys.stderr.write(result.stderr.decode()) @@ -58,7 +62,8 @@ def show(): def log(): result = subprocess.run(args + ["log"], capture_output=True) if result.returncode != 0: - raise click.ClickException(result.stderr.decode().strip()) + sys.stderr.write(result.stderr.decode()) + sys.exit(1) sys.stdout.write(result.stdout.decode()) sys.stderr.write(result.stderr.decode()) @@ -67,7 +72,8 @@ def log(): def lock(): result = subprocess.run(args + ["ipc"] + ["call"] + ["lock"] + ["lock"], capture_output=True) if result.returncode != 0: - raise click.ClickException(result.stderr.decode().strip()) + sys.stderr.write(result.stderr.decode()) + sys.exit(1) sys.stderr.write(result.stderr.decode()) @@ -75,5 +81,6 @@ def lock(): def call(target: str, method: str, method_args: list[str] = typer.Argument(None)): result = subprocess.run(args + ["ipc"] + ["call"] + [target] + [method] + (method_args or []), capture_output=True) if result.returncode != 0: - raise click.ClickException(result.stderr.decode().strip()) + sys.stderr.write(result.stderr.decode()) + sys.exit(1) sys.stderr.write(result.stderr.decode()) diff --git a/cli/tests/test_shell.py b/cli/tests/test_shell.py index 1763247..9dd8de2 100644 --- a/cli/tests/test_shell.py +++ b/cli/tests/test_shell.py @@ -62,8 +62,9 @@ class TestStart: class TestShow: @patch("zshell.subcommands.shell.subprocess.run") def test_show_runs_ipc_show(self, mock_run): - mock_run.return_value = CompletedProcess([], 0, b"", b"target visibilities\n") - invoke("show") + mock_run.return_value = CompletedProcess([], 0, b"target visibilities\n", b"") + result = invoke("show") + assert "target visibilities" in result.output mock_run.assert_called_once_with(["qs", "-c", "zshell", "ipc", "show"], capture_output=True)