author | František Kučera <franta-hg@frantovo.cz> |
Sat, 26 Oct 2019 20:57:42 +0200 | |
branch | v_0 |
changeset 276 | cfaf1fa94154 |
parent 264 | d39cfc926f95 |
permissions | -rw-r--r-- |
219 | 1 |
# Install dependencies as root: |
2 |
su -c "apt install g++ make cmake mercurial pkg-config" |
|
241 | 3 |
su -c "apt install libxerces-c-dev" # needed only for relpipe-in-xml module |
250 | 4 |
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) |
258
2868d772c27e
Release v0.12 – AWK
František Kučera <franta-hg@frantovo.cz>
parents:
256
diff
changeset
|
5 |
su -c "apt install gawk" # needed only for relpipe-tr-awk module |
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
6 |
su -c "apt install libxml++2.6-dev" # needed only for relpipe-in-xmltable module |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
7 |
su -c "apt install libsqlite3-dev" # needed only for relpipe-tr-sql module |
219 | 8 |
|
9 |
# Run rest of installation as a non-root user: |
|
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
10 |
export RELPIPE_VERSION="v0.13" |
219 | 11 |
export RELPIPE_SRC=~/src |
12 |
export RELPIPE_BUILD=~/build |
|
13 |
export RELPIPE_INSTALL=~/install |
|
14 |
export PKG_CONFIG_PATH="$RELPIPE_INSTALL/lib/pkgconfig/:$PKG_CONFIG_PATH" |
|
15 |
export PATH="$RELPIPE_INSTALL/bin:$PATH" |
|
16 |
||
241 | 17 |
rm -rf "$RELPIPE_BUILD"/relpipe-* |
18 |
mkdir -p "$RELPIPE_SRC" "$RELPIPE_BUILD" "$RELPIPE_INSTALL" |
|
219 | 19 |
|
20 |
# Helper functions: |
|
241 | 21 |
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; } |
22 |
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; } |
|
219 | 23 |
|
24 |
# Download all sources: |
|
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
25 |
relpipe_download lib-protocol lib-reader lib-writer lib-cli lib-xmlwriter in-cli in-fstab in-xml in-xmltable 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 tr-awk tr-sql |
250 | 26 |
|
27 |
# 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. |
|
219 | 28 |
|
29 |
# Build and install libraries: |
|
241 | 30 |
relpipe_install lib-protocol lib-reader lib-writer lib-cli lib-xmlwriter |
219 | 31 |
|
32 |
# Build and install tools: |
|
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
33 |
relpipe_install in-fstab in-cli in-fstab in-xml in-xmltable in-csv in-recfile tr-cut tr-grep tr-sed tr-guile tr-awk tr-sql out-nullbyte out-ods out-tabular out-xml out-csv out-asn1 out-recfile |
241 | 34 |
|
35 |
# relpipe_install in-filesystem # requires GCC 8 or patching (see below) |
|
219 | 36 |
|
37 |
# Clean-up: |
|
38 |
unset -f relpipe_install |
|
39 |
unset -f relpipe_download |
|
40 |
unset -v RELPIPE_VERSION |
|
41 |
unset -v RELPIPE_SRC |
|
42 |
unset -v RELPIPE_BUILD |
|
43 |
unset -v RELPIPE_INSTALL |
|
44 |
||
264
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
45 |
# Compute statistics of currently mounted filesystems using SQL and view them like on an 80s green screen terminal! |
d39cfc926f95
XMLTable, SQL, v0.13
František Kučera <franta-hg@frantovo.cz>
parents:
258
diff
changeset
|
46 |
cat /etc/mtab | relpipe-in-fstab | relpipe-tr-sql --relation mount_statistics "SELECT type, count(*) AS count FROM fstab GROUP BY type ORDER BY count DESC" | relpipe-out-tabular |