File tree 1 file changed +11
-4
lines changed
1 file changed +11
-4
lines changed Original file line number Diff line number Diff line change 1
1
import subprocess
2
+ import re
2
3
3
4
4
5
def run_command (command : str ) -> str :
@@ -8,7 +9,8 @@ def run_command(command: str) -> str:
8
9
return result .stdout
9
10
10
11
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."""
12
14
process = subprocess .Popen (
13
15
["bash" , "-c" , command ],
14
16
stdout = subprocess .PIPE ,
@@ -18,10 +20,15 @@ def stream_command(command: str) -> bool:
18
20
universal_newlines = True ,
19
21
)
20
22
21
- message = ""
23
+ pattern = re .compile (grep_pattern ) if grep_pattern else None
24
+
25
+ # Only display lines matching the pattern if grep is specified
22
26
for line in iter (process .stdout .readline , "" ):
23
- message += line
24
- print (line , end = "" )
27
+ if pattern :
28
+ if pattern .search (line ):
29
+ print (line , end = "" )
30
+ else :
31
+ print (line , end = "" )
25
32
26
33
process .stdout .close ()
27
34
return_code = process .wait ()
You can’t perform that action at this time.
0 commit comments