summaryrefslogtreecommitdiffstats
path: root/fish/rc_protocol.x
diff options
context:
space:
mode:
authorRichard Jones <rjones@trick.home.annexia.org>2009-07-13 13:06:26 +0100
committerRichard Jones <rjones@trick.home.annexia.org>2009-07-14 14:08:31 +0100
commita86aa7d152ed996170714a3a4516eab58bf8b59d (patch)
treeb29a2081d1951b13c0da03d01973a0e8c507ba5b /fish/rc_protocol.x
parent5d6cc25900df4e13e4085f13d4f846cc9719ce61 (diff)
downloadlibguestfs-a86aa7d152ed996170714a3a4516eab58bf8b59d.tar.gz
libguestfs-a86aa7d152ed996170714a3a4516eab58bf8b59d.tar.xz
libguestfs-a86aa7d152ed996170714a3a4516eab58bf8b59d.zip
Guestfish feature: remote control of guestfish over a pipe.
The use case is to have a long-running guestfish process in a shell script, and thus to avoid the overhead of starting guestfish each time. Do: eval `guestfish --listen` guestfish --remote somecmd guestfish --remote someothercmd guestfish --remote exit This patch also supports having multiple guestfish processes at the same time. The protocol is simple XDR messages over a Unix domain socket.
Diffstat (limited to 'fish/rc_protocol.x')
-rw-r--r--fish/rc_protocol.x36
1 files changed, 36 insertions, 0 deletions
diff --git a/fish/rc_protocol.x b/fish/rc_protocol.x
new file mode 100644
index 00000000..9d8f0e9f
--- /dev/null
+++ b/fish/rc_protocol.x
@@ -0,0 +1,36 @@
+/* libguestfs - guestfish remote control protocol -*- c -*-
+ * Copyright (C) 2009 Red Hat Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+typedef string str<>;
+
+struct guestfish_hello {
+ /* Client and server version strings must match exactly. We change
+ * this protocol whenever we want to.
+ */
+ string vers<>;
+};
+
+struct guestfish_call {
+ string cmd<>;
+ str args<>;
+ bool exit_on_error;
+};
+
+struct guestfish_reply {
+ int r; /* 0 or -1 only. */
+};