blob: 6802dc84cbf3dd14cbf881d4a5b971f79b05ea93 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
import subprocess
from argparse import Namespace
import data
class Command:
args: Namespace
def __init__(self, args: Namespace) -> None:
self.args = args
def run(self) -> None:
if self.args.show:
# Print the ipc
self.print_ipc()
elif self.args.log:
# Print the log
self.print_log()
elif self.args.message:
# Send a message
self.message(*self.args.message)
else:
# Start the shell
self.shell()
def shell(self, *args: list[str]) -> str:
return subprocess.check_output(["qs", "-p", data.c_data_dir / "shell", *args], text=True)
def print_ipc(self) -> None:
print(self.shell("ipc", "show"), end="")
def print_log(self) -> None:
log = self.shell("log")
# FIXME: remove when logging rules are added/warning is removed
for line in log.splitlines():
if "QProcess: Destroyed while process" not in line:
print(line)
def message(self, *args: list[str]) -> None:
print(self.shell("ipc", "call", *args), end="")
|