feat: add --no-newline option for watch pipe
This commit is contained in:
+13
-3
@@ -390,24 +390,34 @@ def pipe(
|
|||||||
before: Annotated[
|
before: Annotated[
|
||||||
int,
|
int,
|
||||||
cyclopts.Parameter(
|
cyclopts.Parameter(
|
||||||
name="--before",
|
name=["--before", "-b"],
|
||||||
help="Number of lyric lines to show before current line.",
|
help="Number of lyric lines to show before current line.",
|
||||||
),
|
),
|
||||||
] = 0,
|
] = 0,
|
||||||
after: Annotated[
|
after: Annotated[
|
||||||
int,
|
int,
|
||||||
cyclopts.Parameter(
|
cyclopts.Parameter(
|
||||||
name="--after",
|
name=["--after", "-a"],
|
||||||
help="Number of lyric lines to show after current line.",
|
help="Number of lyric lines to show after current line.",
|
||||||
),
|
),
|
||||||
] = 0,
|
] = 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."""
|
"""Watch active player and continuously print lyric window to stdout."""
|
||||||
logger.info(
|
logger.info(
|
||||||
"Starting watch pipe (player filter: {})",
|
"Starting watch pipe (player filter: {})",
|
||||||
_player or "<none>",
|
_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:
|
try:
|
||||||
session = WatchCoordinator(
|
session = WatchCoordinator(
|
||||||
manager,
|
manager,
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ class PipeOutput(BaseOutput):
|
|||||||
|
|
||||||
before: int = 0
|
before: int = 0
|
||||||
after: int = 0
|
after: int = 0
|
||||||
|
no_newline: bool = False
|
||||||
|
|
||||||
def _window_size(self) -> int:
|
def _window_size(self) -> int:
|
||||||
"""Return rendered lyric window size."""
|
"""Return rendered lyric window size."""
|
||||||
@@ -81,5 +82,5 @@ class PipeOutput(BaseOutput):
|
|||||||
lines = self._render_lyrics(state)
|
lines = self._render_lyrics(state)
|
||||||
|
|
||||||
for line in lines:
|
for line in lines:
|
||||||
print(line)
|
sys.stdout.write(line + ("\n" if not self.no_newline else ""))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
|
|||||||
Reference in New Issue
Block a user