Skip to content

Commit 02bf3ee

Browse files
committed
process: enable stream_command to filter by pattern
1 parent 7bc5ba7 commit 02bf3ee

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/warnet/process.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import re
12
import subprocess
23

34

@@ -8,7 +9,8 @@ def run_command(command: str) -> str:
89
return result.stdout
910

1011

11-
def stream_command(command: str) -> bool:
12+
def stream_command(command: str, grep_pattern: str = "") -> bool:
13+
"""Stream output and apply an optional pattern filter."""
1214
process = subprocess.Popen(
1315
["bash", "-c", command],
1416
stdout=subprocess.PIPE,
@@ -18,10 +20,16 @@ def stream_command(command: str) -> bool:
1820
universal_newlines=True,
1921
)
2022

23+
pattern = re.compile(grep_pattern) if grep_pattern else None
2124
message = ""
25+
# Only display lines matching the pattern if grep is specified
2226
for line in iter(process.stdout.readline, ""):
2327
message += line
24-
print(line, end="")
28+
if pattern:
29+
if pattern.search(line):
30+
print(line, end="")
31+
else:
32+
print(line, end="")
2533

2634
process.stdout.close()
2735
return_code = process.wait()

0 commit comments

Comments
 (0)