diff doc/jp/debug.rst @ 3041:72583524cfd3

doc (jp): jp commands are now fully documented: rel 232
author Goffi <goffi@goffi.org>
date Tue, 01 Oct 2019 22:49:06 +0200
parents
children cf843dd7c345
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/jp/debug.rst	Tue Oct 01 22:49:06 2019 +0200
@@ -0,0 +1,79 @@
+=====================================================
+debug: tools to help debugging/monitoring Salut à Toi
+=====================================================
+
+``debug`` groups commands to monitor or manipulate SàT and XMPP stream.
+
+.. _jp-debug_bridge_method:
+
+bridge method
+=============
+
+Call a method of the bridge. You have to provide the name of the method and the arguments
+as positional arguments. Arguments are evaluated as Python code (using ``eval``), so you
+need to properly escape them (for your shell **and** Python). You can either split your
+Python arguments as many shell arguments, or put them in a single shell argument.
+
+You profile is automatically set if the method requires it (using the value of ``-p
+PROFILE, --profile PROFILE``), so you must not specify it as an extra argument.
+
+You can refer to `Bridge API documentation`_ to get core methods signatures
+
+.. _Bridge API documentation: https://wiki.goffi.org/wiki/Bridge_API
+
+
+examples
+--------
+
+Send a message using a single shell arguments for all Python arguments. We
+use first the method name (``messageSend``), then the required arguments (see `Bridge
+API documentation`_ for details), without the profile as it is automatically set. We
+specify them as Python in one shell argument, so we use single quote (``\```)first for
+s hell string, and inside it we use double quote (``"``) for Python strings::
+
+  $ jp debug bridge method messageSend '"louise@example.org", {"": "test message"}, {}, "auto", {}'
+
+.. note::
+
+  This is for debugging only, if you want to send message with jp, use :ref:`jp-message_send`.
+
+Get version string of SàT::
+
+  $ jp debug bridge method getVersion
+
+
+bridge signal
+=============
+
+Send a fake signal. This is specially useful to test behaviour of a frontend when a
+specific event happens. To use is you just need to specify the name of the signal and the
+arguments to use (using Python eval in the same way as for jp-debug_bridge_method_).
+
+example
+-------
+
+Send a note with ``info`` level and hand written XMLUI. Here me use a shell variable to
+store the level, so we can easily change it if we want to use an other level for tests.
+Note the use of quotes (to escape both for shell and Python)::
+
+  $ LEVEL='info'; jp debug bridge signal -c actionNew '{"xmlui": '"'"'<?xml version="1.0" ?><sat_xmlui title="test title" type="dialog"><dialog level="'$LEVEL'" type="note"><message>test message\non\nseveral\nlines</message></dialog></sat_xmlui>'"'"'}' '""' -1
+
+
+monitor
+=======
+
+Show raw XML stream. By default, output is pretty formatted/highlighted and you get all
+streams in both direction. You can filter the direction using ``-d {in,out,both},
+--direction {in,out,both}``.
+
+For this to work, you need to set the option ``Activate XML log`` in the ``Debug`` section
+of your parameters.
+
+Verbosity is used, to print details on the direction of a stanza, use ``--verbose, -v``
+
+example
+-------
+
+Monitor raw XML stream::
+
+  $ jp debug monitor -v