summaryrefslogtreecommitdiff
path: root/src/cli.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/cli.vala')
-rw-r--r--src/cli.vala41
1 files changed, 38 insertions, 3 deletions
diff --git a/src/cli.vala b/src/cli.vala
index 82a99a4..3da4586 100644
--- a/src/cli.vala
+++ b/src/cli.vala
@@ -1,11 +1,20 @@
private static bool version;
private static bool help;
+private static bool list;
+private static bool quit;
+private static bool inspector;
+private static string? toggle_window;
private static string? instance_name;
private const GLib.OptionEntry[] options = {
{ "version", 'v', OptionFlags.NONE, OptionArg.NONE, ref version, null, null },
{ "help", 'h', OptionFlags.NONE, OptionArg.NONE, ref help, null, null },
- { "instance-name", 'i', OptionFlags.NONE, OptionArg.STRING, ref instance_name, null, null },
+ { "list", 'l', OptionFlags.NONE, OptionArg.NONE, ref list, null, null },
+ { "quit", 'q', OptionFlags.NONE, OptionArg.NONE, ref quit, null, null },
+ { "quit", 'q', OptionFlags.NONE, OptionArg.NONE, ref quit, null, null },
+ { "inspector", 'I', OptionFlags.NONE, OptionArg.NONE, ref inspector, null, null },
+ { "toggle-window", 't', OptionFlags.NONE, OptionArg.STRING, ref toggle_window, null, null },
+ { "instance", 'i', OptionFlags.NONE, OptionArg.STRING, ref instance_name, null, null },
{ null },
};
@@ -22,13 +31,17 @@ async int main(string[] argv) {
}
if (help) {
- print("Client for the socket of an Astal.Application instance\n\n");
+ print("Client for Astal.Application instances\n\n");
print("Usage:\n");
print(" %s [flags] message\n\n", argv[0]);
print("Flags:\n");
print(" -h, --help Print this help and exit\n");
print(" -v, --version Print version number and exit\n");
- print(" -i, --instance-name Instance name of the Astal instance\n");
+ print(" -l, --list List running Astal instances and exit\n");
+ print(" -q, --quit Quit an Astal.Application instance\n");
+ print(" -i, --instance Instance name of the Astal instance\n");
+ print(" -I, --inspector Open up Gtk debug tool\n");
+ print(" -t, --toggle-window Show or hide a window\n");
return 0;
}
@@ -40,6 +53,28 @@ async int main(string[] argv) {
if (instance_name == null)
instance_name = "astal";
+ if (list) {
+ foreach (var name in Astal.Application.get_instances())
+ stdout.printf("%s\n", name);
+
+ return 0;
+ }
+
+ if (quit) {
+ Astal.Application.quit_instance(instance_name);
+ return 0;
+ }
+
+ if (inspector) {
+ Astal.Application.open_inspector(instance_name);
+ return 0;
+ }
+
+ if (toggle_window != null) {
+ Astal.Application.toggle_window_by_name(instance_name, toggle_window);
+ return 0;
+ }
+
var request = "";
for (var i = 1; i < argv.length; ++i) {
request = request.concat(" ", argv[i]);