css: green noise background, lighter body, header and footer background, shadows, link colors, lighter footnotes border, copyright 2018-2020
<stránka
xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana"
xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro">
<nadpis>Release v0.9</nadpis>
<perex>second public release of Relational pipes</perex>
<m:release>v0.9</m:release>
<text xmlns="http://www.w3.org/1999/xhtml">
<p>
We are pleased to introduce you the new version of <m:name/>.
It brings several important features:
</p>
<ul>
<li>
<strong>XML input and output</strong>:
offers lossless bidirectional conversion between relational format and text.
Can be used for manual modifications or reviews.
XML form of relational data can be generated or consumed by XQuery or XSLT processors or other XML tools.
</li>
<li>
<strong>CSV input and output</strong>:
CSV is a standard format defined in <a href="https://tools.ietf.org/html/rfc4180">RFC 4180</a>.
It is very simple, lacks data types and can contain only a single relation.
Despite this, it is very useful when integrating <m:name/> with other tools.
At the end of our pipeline, we can put <code>relpipe-out-csv</code>, feed the relation to e.g. GNU R and compute some statistics or generate some nice graphs.
</li>
<li>
<strong>Filesystem input</strong>: this input filter reads file paths (usually generated by the <code>find</code> command)
and fetches metadata of given files. Supports various name/path formats, size, owner, symlinks… and extended attributes (xattr).
The output can be customized using CLI arguments.
This tool can be used to catalogue disk contents, search files or to collect data for some statistics like:
<em>How much space does files in particular formats occupy?</em> or
<em>From which domains I download files most often?</em>
Other use case is: save the output of <code>relpipe-in-filesystem</code> in a file and use it as an index of our files (even on offline media).
</li>
</ul>
<p>
See the <m:a href="examples">examples</m:a> page for details.
</p>
<h3>Data types</h3>
<ul>
<li m:since="v0.8">boolean</li>
<li m:since="v0.8">variable unsigned integer (prototype)</li>
<li m:since="v0.8">string in UTF-8</li>
</ul>
<h3>Inputs</h3>
<ul>
<li m:since="v0.9">XML</li>
<li m:since="v0.9">CSV</li>
<li m:since="v0.9">file system</li>
<li m:since="v0.8">CLI</li>
<li m:since="v0.8">fstab</li>
</ul>
<h3>Transformations</h3>
<ul>
<li m:since="v0.8">grep: regular expression filter, removes unwanted records from the relation</li>
<li m:since="v0.8">cut: regular expression attribute cutter (removes or duplicates attributes and can also DROP whole relation)</li>
<li m:since="v0.8">sed: regular expression replacer</li>
<li m:since="v0.8">validator: just a pass-through filter that crashes on invalid data</li>
<li m:since="v0.8">python: highly experimental</li>
</ul>
<h3>Outputs</h3>
<ul>
<li m:since="v0.9">CSV</li>
<li m:since="v0.8">tabular</li>
<li m:since="v0.8">XML</li>
<li m:since="v0.8">nullbyte</li>
<li m:since="v0.8">GUI in Qt</li>
<li m:since="v0.8">ODS (LibreOffice)</li>
</ul>
<p>
Instalation was tested on Debian GNU/Linux 9.6.
The process should be similar on other distributions.
</p>
<m:pre src="examples/release-v0.9.sh" jazyk="bash" odkaz="ano"/>
<p>
<m:name/> are modular thus you can download and install only parts you need (the libraries are needed always).
Tools <code>out-gui.qt</code> and <code>tr-python</code> require additional libraries and are not built by default.
</p>
<p>
The module <code>relpipe-in-filesystem</code> uses C++ filesystem API which is supported since GCC 8.
This module can be compiled and seems usable even with GCC 6, but requires some patching (switch to the experimental API):
</p>
<m:pre jazyk="bash"><![CDATA[sed 's@#include <filesystem>@#include <experimental/filesystem>@g' -i "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FileAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/XattrAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FilesystemCommand.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/AttributeFinder.h
sed 's@std::filesystem@std::experimental::filesystem@g' -i "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FileAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/XattrAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FilesystemCommand.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/AttributeFinder.h
sed 's/.*PROPERTY CXX_STANDARD.*/#\0/g' -i "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/CMakeLists.txt]]></m:pre>
</text>
</stránka>