.. 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/`
   sc3; :ref:`sc32inv`; Alias for scml for backwards compatibility to SeisComP3
   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 arg

   Use alternative configuration file. When this option is
   used the loading of all stages is disabled. Only the
   given configuration file is parsed and used. To use
   another name for the configuration create a symbolic
   link of the application or copy it. Example:
   scautopick \-> scautopick2.

.. 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, eg. \-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.