diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-06-17 22:21:12 +1000 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-06-17 22:21:12 +1000 |
| commit | 83148d9351e2ffe0751151388d431482fd850796 (patch) | |
| tree | 3a070c97252b8289570d2e5033fbfde33f6ca6bb /src/caelestia | |
| parent | scheme: dump scheme data when no args to list (diff) | |
| download | caelestia-cli-83148d9351e2ffe0751151388d431482fd850796.tar.gz caelestia-cli-83148d9351e2ffe0751151388d431482fd850796.tar.bz2 caelestia-cli-83148d9351e2ffe0751151388d431482fd850796.zip | |
shell: no duplicate + daemon option
Diffstat (limited to 'src/caelestia')
| -rw-r--r-- | src/caelestia/parser.py | 1 | ||||
| -rw-r--r-- | src/caelestia/subcommands/shell.py | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/caelestia/parser.py b/src/caelestia/parser.py index 5b1e924..e39b29c 100644 --- a/src/caelestia/parser.py +++ b/src/caelestia/parser.py @@ -18,6 +18,7 @@ def parse_args() -> (argparse.ArgumentParser, argparse.Namespace): shell_parser = command_parser.add_parser("shell", help="start or message the shell") shell_parser.set_defaults(cls=shell.Command) shell_parser.add_argument("message", nargs="*", help="a message to send to the shell") + shell_parser.add_argument("-d", "--daemon", action="store_true", help="start the shell detached") shell_parser.add_argument("-s", "--show", action="store_true", help="print all shell IPC commands") shell_parser.add_argument( "-l", diff --git a/src/caelestia/subcommands/shell.py b/src/caelestia/subcommands/shell.py index 11c979c..e8017fe 100644 --- a/src/caelestia/subcommands/shell.py +++ b/src/caelestia/subcommands/shell.py @@ -20,7 +20,10 @@ class Command: self.message(*self.args.message) else: # Start the shell - subprocess.Popen(["qs", "-c", "caelestia"]).wait() + args = ["qs", "-n", "-c", "caelestia"] + if self.args.daemon: + args.append("-d") + subprocess.run(args) def shell(self, *args: list[str]) -> str: return subprocess.check_output(["qs", "-c", "caelestia", *args], text=True) |