feat: add --no-newline option for watch pipe

This commit is contained in:
2026-04-09 23:39:01 +02:00
parent e6997a76c4
commit b7e539de3b
2 changed files with 15 additions and 4 deletions
+13 -3
View File
@@ -390,24 +390,34 @@ def pipe(
before: Annotated[
int,
cyclopts.Parameter(
name="--before",
name=["--before", "-b"],
help="Number of lyric lines to show before current line.",
),
] = 0,
after: Annotated[
int,
cyclopts.Parameter(
name="--after",
name=["--after", "-a"],
help="Number of lyric lines to show after current line.",
),
] = 0,
no_newline: Annotated[
bool,
cyclopts.Parameter(
name=["--no-newline", "-n"],
negative="",
help="Do not append a new line after the lyric output.",
),
] = False,
):
"""Watch active player and continuously print lyric window to stdout."""
logger.info(
"Starting watch pipe (player filter: {})",
_player or "<none>",
)
output = PipeOutput(before=max(0, before), after=max(0, after))
output = PipeOutput(
before=max(0, before), after=max(0, after), no_newline=no_newline
)
try:
session = WatchCoordinator(
manager,
+2 -1
View File
@@ -13,6 +13,7 @@ class PipeOutput(BaseOutput):
before: int = 0
after: int = 0
no_newline: bool = False
def _window_size(self) -> int:
"""Return rendered lyric window size."""
@@ -81,5 +82,5 @@ class PipeOutput(BaseOutput):
lines = self._render_lyrics(state)
for line in lines:
print(line)
sys.stdout.write(line + ("\n" if not self.no_newline else ""))
sys.stdout.flush()