.. highlight:: rst

.. _import_inv:

##########
import_inv
##########

**Import inventory information from various sources.**


Description
===========

import_inv is a wrapper for inventory converters. Inventory converters convert
an input format such as

.. csv-table::
   :widths: 15 15 70
   :header: Format, Converter, Conversion
   :align: left
   :delim: ;

   scml; :ref:`scml2inv`; :ref:`SeisComP inventory XML <concepts_inventory>`, schema: :file:`$SEISCOMP_ROOT/share/xml/`
   arclink; :ref:`arclink2inv`; Arclink inventory XML
   dlsv; :ref:`dlsv2inv`; `dataless SEED <http://www.iris.edu/data/dataless.htm>`_
   fdsnxml; :ref:`fdsnxml2inv`; `FDSN StationXML <http://www.fdsn.org/xml/station/>`_

to SeisComP inventory XML which is read by the trunk config module to
synchronize the local inventory file pool with the central inventory database.

For printing all available formats call

.. code-block:: sh

   $ import_inv help formats

When :program:`import_inv help formats` is called it globs for
:file:`$SEISCOMP_ROOT/bin/*2inv`.
If another format needs to be converted, it is very easy to provide a new
converter.


Converter interface
-------------------

For making a new converter work with import_inv it must implement an interface
on shell level. Furthermore the converter program must be named
:file:`{format}2inv` and must live in :file:`SEISCOMP_ROOT/bin`.

The converter program must take the input location (file, directory, URL, ...)
as first parameter and the output file (SeisComP XML) as second parameter. The
output file must be optional and default to stdout.

To add a new converter for a new format, e.g. Excel, place the new converter
program at :file:`$SEISCOMP_ROOT/bin/excel2inv`.


Examples
--------

* Convert inventory file in FDSN StationXML format (fdsnxml) and copy the content to
  :file:`$SEISCOMP_ROOT/etc/inventoy/inventory.xml`. The call will invoke
  :ref:`fdsnxml2inv` for actually making the conversion:

  .. code-block:: sh

     $ import_inv fdsnxml inventory_fdsn.xml $SEISCOMP_ROOT/etc/inventoy/inventory.xml


.. _import_inv_configuration:

Module Configuration
====================

| :file:`etc/defaults/global.cfg`
| :file:`etc/defaults/import_inv.cfg`
| :file:`etc/global.cfg`
| :file:`etc/import_inv.cfg`
| :file:`~/.seiscomp/global.cfg`
| :file:`~/.seiscomp/import_inv.cfg`

import_inv inherits :ref:`global options<global-configuration>`.




Command-Line Options
====================

.. program:: import_inv

:program:`import_inv [FORMAT] input [output]`

:program:`import_inv help [topic]`

The first form takes the format as first parameter and the input
and output location. The input location is either a file or directory
depending on the format and its converter. If the output is not
given it defaults to seiscomp\/etc\/inventory\/{input}.xml. To write
the output to stdout, \"\-\" must be used.

The second form provides help on a particular topic. The only topic
currently supported is \"formats\" which prints all available input
formats.


Generic
-------

.. option:: -h, --help

   Show help message.

.. option:: -V, --version

   Show version information.

.. option:: --config-file file

   The alternative module configuration file. When this option
   is used, the module configuration is only read from the
   given file and no other configuration stage is considered.
   Therefore, all configuration including the definition of
   plugins must be contained in that file or given along with
   other command\-line options such as \-\-plugins.

.. option:: --plugins arg

   Load given plugins.

.. option:: -D, --daemon

   Run as daemon. This means the application will fork itself
   and doesn't need to be started with \&.

.. option:: --auto-shutdown arg

   Enable\/disable self\-shutdown because a master module shutdown.
   This only works when messaging is enabled and the master
   module sends a shutdown message \(enabled with
   \-\-start\-stop\-msg for the master module\).

.. option:: --shutdown-master-module arg

   Set the name of the master\-module used for auto\-shutdown.
   This is the application name of the module actually
   started. If symlinks are used, then it is the name of
   the symlinked application.

.. option:: --shutdown-master-username arg

   Set the name of the master\-username of the messaging
   used for auto\-shutdown. If \"shutdown\-master\-module\" is
   given as well, this parameter is ignored.


Verbosity
---------

.. option:: --verbosity arg

   Verbosity level [0..4]. 0:quiet, 1:error, 2:warning, 3:info,
   4:debug.

.. option:: -v, --v

   Increase verbosity level \(may be repeated, e.g., \-vv\).

.. option:: -q, --quiet

   Quiet mode: no logging output.

.. option:: --component arg

   Limit the logging to a certain component. This option can
   be given more than once.

.. option:: -s, --syslog

   Use syslog logging backend. The output usually goes to
   \/var\/lib\/messages.

.. option:: -l, --lockfile arg

   Path to lock file.

.. option:: --console arg

   Send log output to stdout.

.. option:: --debug

   Execute in debug mode.
   Equivalent to \-\-verbosity\=4 \-\-console\=1 .

.. option:: --log-file arg

   Use alternative log file.

