diff doc/jp/common_arguments.rst @ 2946:ce16847a7b6d

doc: documentation first draft: this patch starts the local documentation, existing documentation will be imported from wiki/other places to this folder and updated. This doc is using reStructuredText format and will be generated with Sphinx.
author Goffi <goffi@goffi.org>
date Fri, 22 Feb 2019 18:58:59 +0100
parents
children 8fd8c9f548cd
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/jp/common_arguments.rst	Fri Feb 22 18:58:59 2019 +0100
@@ -0,0 +1,207 @@
+================
+common arguments
+================
+
+Some arguments are used in many commands. This page describe them.
+
+profile
+=======
+
+profile arguments are really common, they allow you to select your profile.
+If you don't select any, the default profile is used, which is the first
+profile created or the one you have explicitly set. You can check which profile
+is used by default with ``jp profile default``.
+
+The common arguments for profile are:
+
+``-p PROFILE, --profile PROFILE``
+  to select the name of your profile. It can be a profile key like ``@DEFAULT@``
+
+``-c, --connect``
+  connect the profile to the XMPP server before doing anything else. If your
+  profile is already connected, nothing happen. This is specially useful in scripts.
+
+``--start-session``
+  starts a session without connecting, this can be needed if you can't connect but
+  you need to access your session e.g. to change parameters.
+  This is advanced used and is not need in most common cases.
+
+``--pwd PASSWORD``
+  the password of your profile, needed if the session is not started yet.
+
+.. note::
+
+   jp does not yet prompt for password when needed, this mean that using the ``--pwd``
+   option is not secure if you are not the only user of your machine: the password will
+   appear **IN CLEAR** in the list of launched process, or in the history of your shell.
+   If you are on a shared machine or if anybody can access your shell history at some
+   point, you should connect first your profile with an other frontend (Primitivus for
+   instance).  This will be fixed in a future version of jp.
+
+.. _pubsub_common:
+
+pubsub
+======
+
+pubsub arguments are used in many commands, they allow you to select a service, node and
+items. Depending on the command, you may only not be able to select an item, or you may
+select one or multiple items.
+
+The common arguments for pubsub are:
+
+``-u PUBSUB_URL, --pubsub-url PUBSUB_URL``
+  retrieve pubsub information from an URL. You can use either and ``xmpp:`` scheme or an
+  ``https:`` (or ``http:``) scheme. In the later case, the HTML page will be downloaded to
+  retrieve the location of the XMPP node/item, if available.
+  Note that you can override parts of the location in the URL if you specify service, node
+  or item.
+
+  e.g.::
+
+    $ jp blog get -u https://www.goffi.org
+
+``-s SERVICE, --service``
+  used to specifiy the JID of the pubsub service
+
+``-n NODE, --node NODE``
+  used to specifiy the pubsub node
+
+``-i ITEM, --item ITEM``
+  for commands where an item can be specified, you do it with this option. In some
+  commands, multiple items can be specified, in this case just use this arguments several
+  times.
+
+``-L, --last-item``
+  when an item id is needed, you can use this option to retrieve the last published item.
+  e.g.::
+
+    $ jp blog edit --last-item
+
+``-M, --max-items``
+  use to specify a maxium number of items to retrieve, when it makes sense.
+  Note that this is using the pubsub max (i.e. defined in
+  `XEP-0060 <https://xmpp.org/extensions/xep-0060.html>`_). Modern pubsub services should
+  implement `Result Set Management <https://xmpp.org/extensions/xep-0059.html>`_ (RSM) and in
+  this case the ``-m, --max`` argument should be prefered. See below for RSM common
+  arguments.
+
+result set management
+=====================
+
+Result Set Management (RSM) common arguments are used to navigate into pages of results
+when lot of elements may be expected. Given a result with a large number of arguments, a
+*page* is set of elements which correspond to an *index* (a page number). For instance if
+you have 123 elements, you can ask them 10 by 10, and *index 1* match elements from 11 to
+20 included.
+
+
+``-a ITEM_ID, --after ITEM_ID``
+  find page after this item. You usually use the last item id of the latest page you got.
+
+``-b ITEM_ID, --before ITEM_ID``
+  find page before this item. This this usually used when you check items backwards
+
+``--index RSM_INDEX``
+  index of the page to retrieve. Note that first page has index **0**.
+
+``-m RSM_MAX, --max RSM_MAX``
+  used to specify a maxium number of items to retrieve per page. Note that the actual
+  maximum number of items per page used may be lower if the service used consider that
+  your request is too big.
+
+message archive management
+==========================
+
+Message Archive Management (MAM) argument is used by some commands (related to instant message or
+pubsub) to filter results.
+
+There is currently only one argument in this group:
+
+``-f FILTER_NAME VALUE, --filter FILTER_NAME VALUE``
+  specify a MAM filter to use. Depending on the service supporting MAM, some filters can
+  be used to do things like full text search. The available filters depend on the service
+  you use, please check documentation of your service.
+
+order-by
+========
+
+Order-By argument specify or the returned elements are sorted.
+
+There is currently only one argument in this group:
+
+``-o {creation,modification}, --order-by {creation,modification}``
+  specify how result is sorted. with ``creation``, first created element is returned
+  first. There is no notion of *creation* of *modification* in original
+  `pubsub XEP <https://xmpp.org/extensions/xep-0060.html>`_, as publishing an item with an
+  existing id will overwrite the older one, creating a new item. With this option, we use
+  the terms defined in `XEP-0413 <https://xmpp.org/extensions/xep-0413.html>`_, and
+  *creation* time is the time when the first item has been published, before being
+  overwritten.
+
+  In the case of ``modification``, if an item is overwritten, it reappears on top, this is
+  the default pubsub sorting order.
+
+progress
+========
+
+This single option may be used when a long operation is happening, like a file transfer.
+
+``-P, --progress``
+  Show progress bar.
+
+verbose
+=======
+
+``--verbose, -v``
+  Add a verbosity level (can be used multiple times). Use to have more concise output by
+  default when it makes sense.
+
+draft
+=====
+
+Common arguments used when an edition is potentially long to do, and a file may be kept
+until publication.
+
+
+``-D, --current``
+  Used when you have started to edit something (e.g. a blog post), which is not yet
+  published, and you want to continue your work.
+
+  e.g.::
+
+    $ jp blog edit -D
+
+``-F DRAFT_PATH, --draft-path DRAFT_PATH``
+  Used when you have started to edit something and want to continue your work from this
+  file. In other words, it's similar to ``-D, --current`` except that you specify the file
+  to use instead of using the last available draft.
+
+output
+======
+
+Output is used when you want to get the result of the command in a specific way. It may be
+used, for instance, to retrieve the result formatted in JSON so the data can be easily
+manipulated by a script, or if you want only a specific element of the result.
+
+``-O {…}, --output {…}``
+  specifiy the output to use. Available options depends of the command you are using,
+  check ``jp [your command] --help`` to know them.
+
+  e.g.::
+
+    $ jp blog get -O json
+
+``--output-option OUTPUT_OPTS, --oo OUTPUT_OPTS``
+  depending of the output selected, you may have options to customise the output.
+  For instance, if you use the ``template`` output, you may use an option to display the
+  result in a browser.
+
+  e.g.::
+
+    $ jp blog
+
+  Some options expect parameters, in this case they can be specified using ``=``.
+
+  e.g. specifiying a template to use::
+
+    $ jp blog get -O template --oo browser --oo template=/tmp/my_template.html