# HG changeset patch
# User František Kučera
Recfile is the native format of GNU Recutils.
Recfiles are text files that contain records of various types.
- They are human-editable and serve as a simple databases.
+ They are human-editable and serve as simple databases.
+ Because some web browsers or tools can store the original URL in extended attributes while downloading a file,
+ we can use recsel
to find files downloaded from some particular domain:
+
We can convert result sets from any SQL queries to relational format and then work with such data without connection to the original database.
diff -r 94b533007e77 -r 822ffd23d679 relpipe-data/examples/release-v0.11.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/relpipe-data/examples/release-v0.11.sh Tue Apr 09 17:14:05 2019 +0200
@@ -0,0 +1,43 @@
+# Install dependencies as root:
+su -c "apt install g++ make cmake mercurial pkg-config"
+su -c "apt install libxerces-c-dev" # needed only for relpipe-in-xml module
+su -c "apt install guile-2.2-dev" # needed only for relpipe-tr-guile module; guile-2.0-dev also works but requires a patch (see below)
+
+# Run rest of installation as a non-root user:
+export RELPIPE_VERSION="v0.11"
+export RELPIPE_SRC=~/src
+export RELPIPE_BUILD=~/build
+export RELPIPE_INSTALL=~/install
+export PKG_CONFIG_PATH="$RELPIPE_INSTALL/lib/pkgconfig/:$PKG_CONFIG_PATH"
+export PATH="$RELPIPE_INSTALL/bin:$PATH"
+
+rm -rf "$RELPIPE_BUILD"/relpipe-*
+mkdir -p "$RELPIPE_SRC" "$RELPIPE_BUILD" "$RELPIPE_INSTALL"
+
+# Helper functions:
+relpipe_download() { for m in "$@"; do cd "$RELPIPE_SRC" && ([[ -d "relpipe-$m.cpp" ]] && hg pull -R "relpipe-$m.cpp" && hg update -R "relpipe-$m.cpp" "$RELPIPE_VERSION" || hg clone -u "$RELPIPE_VERSION" https://hg.globalcode.info/relpipe/relpipe-$m.cpp) || break; done; }
+relpipe_install() { for m in "$@"; do cd "$RELPIPE_BUILD" && mkdir -p relpipe-$m.cpp && cd relpipe-$m.cpp && cmake -DCMAKE_INSTALL_PREFIX:PATH="$RELPIPE_INSTALL" "$RELPIPE_SRC/relpipe-$m.cpp" && make && make install || break; done; }
+
+# Download all sources:
+relpipe_download lib-protocol lib-reader lib-writer lib-cli lib-xmlwriter in-cli in-fstab in-xml in-csv in-filesystem in-recfile out-gui.qt out-nullbyte out-ods out-tabular out-xml out-csv out-asn1 out-recfile tr-cut tr-grep tr-python tr-sed tr-validator tr-guile
+
+# Optional: At this point, we have all dependencies and sources downloaded, so we can disconnect this computer from the internet in order to verify that our build process is sane, deterministic and does not depend on any external resources.
+
+# Build and install libraries:
+relpipe_install lib-protocol lib-reader lib-writer lib-cli lib-xmlwriter
+
+# Build and install tools:
+relpipe_install in-fstab in-cli in-fstab in-xml in-csv in-recfile tr-cut tr-grep tr-sed tr-guile out-nullbyte out-ods out-tabular out-xml out-csv out-asn1 out-recfile
+
+# relpipe_install in-filesystem # requires GCC 8 or patching (see below)
+
+# Clean-up:
+unset -f relpipe_install
+unset -f relpipe_download
+unset -v RELPIPE_VERSION
+unset -v RELPIPE_SRC
+unset -v RELPIPE_BUILD
+unset -v RELPIPE_INSTALL
+
+# Filter your your fstab using Guile Scheme and view it like on an 80s green screen terminal!
+relpipe-in-fstab | relpipe-tr-guile --relation 'fstab' --where '(or (= $pass 1) (string= $type "swap") )' | relpipe-out-tabular
diff -r 94b533007e77 -r 822ffd23d679 relpipe-data/implementation.xml
--- a/relpipe-data/implementation.xml Mon Apr 08 13:37:35 2019 +0200
+++ b/relpipe-data/implementation.xml Tue Apr 09 17:14:05 2019 +0200
@@ -18,6 +18,7 @@
relpipe-in-csv.cpp executable input c++ GNU GPLv3+
relpipe-in-filesystem.cpp executable input c++ GNU GPLv3+
relpipe-in-fstab.cpp executable input c++ GNU GPLv3+
+ relpipe-in-recfile.cpp executable input c++ GNU GPLv3+
relpipe-in-xml.cpp executable input c++ GNU GPLv3+
relpipe-lib-cli.cpp library header-only c++ GNU GPLv3+
relpipe-lib-protocol.cpp library header-only c++ GNU LGPLv3+ or GPLv2+
diff -r 94b533007e77 -r 822ffd23d679 relpipe-data/release-v0.10.xml
--- a/relpipe-data/release-v0.10.xml Mon Apr 08 13:37:35 2019 +0200
+++ b/relpipe-data/release-v0.10.xml Tue Apr 09 17:14:05 2019 +0200
@@ -3,7 +3,7 @@
xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro">
+ We are pleased to introduce you the new development version of
+ See the
+ Please note that this is still a development relasease and thus the API (libraries, CLI arguments, formats) might and will change.
+ Any suggestions, ideas and bug reports are welcome in our
+ Instalation was tested on Debian GNU/Linux 9.6.
+ The process should be similar on other distributions.
+
+
+ The module
+ The module
+
+
+ Data types
+
+
+ Inputs
+
+
+ Transformations
+
+
+ Outputs
+
+
+
+ out-gui.qt
and tr-python
require additional libraries and are not built by default.
+ relpipe-in-filesystem
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):
+ relpipe-tr-guile
uses GNU Guile 2.2 but can also work with 2.0.
+ In such case, it requires this patch:
+
Releases for discussion and verification of the format and API design. @@ -128,7 +128,6 @@