10
0
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-11-16 02:53:51 +01:00
QuantumPackage/docs/source/users_guide/qp_plugins.rst
2019-01-25 11:39:31 +01:00

116 lines
2.8 KiB
ReStructuredText

.. _qp_plugins:
==========
qp_plugins
==========
.. program:: qp_plugins
This command deals with all external plugins of |qp|. Plugin
repositories can be downloaded, and the plugins in these repositories
can be installed/uninstalled or created.
Usage
-----
.. code:: bash
qp_plugins list [-i] [-u] [-q]
qp_plugins download <url>
qp_plugins install <name>...
qp_plugins uninstall <name>
qp_plugins create -n <name> [-r <repo>] [<needed_modules>...]
.. option:: list
List all the available plugins.
.. option:: -i, --installed
List all the *installed* plugins.
.. option:: -u, --uninstalled
List all the *uninstalled* plugins.
.. option:: -q, --repositories
List all the downloaded repositories.
.. option:: download <url>
Download an external repository. The URL points to a tar.gz file or a
git repository, for example:
* http://example.com/site/example.tar.gz
* git@gitlab.com:user/example_repository
.. option:: install <plugin_name>
Install the plugin ``plugin_name``.
.. option:: uninstall <plugin_name>
Uninstall the plugin ``plugin_name``.
.. option:: -n, --name=<plugin_name>
Create a new plugin named ``plugin_name`` (in local repository by default).
.. option:: -r, --repository=<repo>
Specify in which repository the new plugin will be created.
Example
-------
Let us download, install and compile some specific external plugins from
`<https://gitlab.com/eginer/qp_plugins_eginer>`_ .
First, download the git repo associated to these plugins. To do so,
first go to the `plugins` directory in the |QP| and execute:
.. code:: bash
qp_plugins download https://gitlab.com/eginer/qp_plugins_eginer
This will create in the directory `plugins` a local copy of
the git repo located at the URL you indicated. Then, go in
`qp_plugins_eginer/stable/`
.. code:: bash
cd qp_plugins_eginer/stable/
In the directory `stable`, there are many directories which all
correspond to a specific plugin that have been developed by the person
in charge of the repository. All these plugins might use some global
variables and routines contained in the core modules of the |QP|.
Now let us install the plugin `rsdft_cipsi`:
.. code:: bash
qp_plugins install rsdft_cipsi
This will link this directory to the |QP| which means that when the code
will be compiled, this plugin will be compiled to and therefore all the
executables/scripts/input keywords contained in this module will be
available as if there were part of the core of the |QP|.
Then, to compile the new plugin, just recompile the |QP| as usual by
going at the root of the |QP| directory:
.. code:: bash
cd $QP_ROOT
ninja
Finally, if you go back to the plugin directory you just installed, you
should see all the executables/scripts which have been created and which
are now available with the `qp_run` command.