The 'extract' component extracts archives using libarchive.

Configuration
~~~~~~~~~~~~~

The following snippet shows how to configure the component to extract
multiple archives one at a time:

!<config verbose="false">
!  <libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/null"
!        update_mtime="no"/>
!  <vfs>
!          <dir name="download"> <fs label="download"/> </dir>
!          <dir name="content"> <fs label="content" writeable="yes"/> </dir>
!          <dir name="dev"> <log/> <null/> </dir>
!  </vfs>
!  <extract archive="/download/foo.zip" to="/content/foo123/" strip="1"/>
!  <extract archive="/download/bar.zip" to="/content/bar/" strip="1"/>
!  <extract archive="/download/README.xz" to="/content/" name="README"/>
!</config>

Each 'extract' node contains the source path to the archive in its 'archive'
attribute. The destination path, where the content of the archive should be
placed, is specified by the 'to' attribute. The 'strip' attribute denotes
how many path elements should be removed from the files stored in the archive
during extraction. In this example the top directory would be omitted. The
'name' attribute is used for naming compressed files that are not part of an
archive.

The 'ignore_failures' attribute of the 'config' node instructs the component
to attempt to extract all given archives and even in the case of failures to
report success. This option is intended for batch-operations where only the
overall success is of importance.

The 'stop_on_failure' attribute of the 'config' node instructs the component
to stop processing any archive after the extraction of one has already failed.

In the default configuration 'ignore_failures' is 'false' while 'stop_on_failure'
is 'true' so processing a batch of archives will stop on the first failure and
leads to exiting with a non-zero exit-value.
