feat: add --no-newline option for watch pipe
This commit is contained in:
+13
-3
@@ -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,
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user