relpipe-data/examples/release-v0.10.sh
author František Kučera <franta-hg@frantovo.cz>
Sat, 26 Oct 2019 20:57:42 +0200
branchv_0
changeset 276 cfaf1fa94154
parent 250 d16336d1c61f
permissions -rw-r--r--
rename --keep-file to --file-keep
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
219
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     1
# Install dependencies as root:
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     2
su -c "apt install g++ make cmake mercurial pkg-config"
241
f71d300205b7 Release v0.9
František Kučera <franta-hg@frantovo.cz>
parents: 221
diff changeset
     3
su -c "apt install libxerces-c-dev" # needed only for relpipe-in-xml module
250
d16336d1c61f Release v0.10
František Kučera <franta-hg@frantovo.cz>
parents: 241
diff changeset
     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)
219
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     5
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     6
# Run rest of installation as a non-root user:
250
d16336d1c61f Release v0.10
František Kučera <franta-hg@frantovo.cz>
parents: 241
diff changeset
     7
export RELPIPE_VERSION="v0.10"
219
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     8
export RELPIPE_SRC=~/src
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     9
export RELPIPE_BUILD=~/build
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    10
export RELPIPE_INSTALL=~/install
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    11
export PKG_CONFIG_PATH="$RELPIPE_INSTALL/lib/pkgconfig/:$PKG_CONFIG_PATH"
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    12
export PATH="$RELPIPE_INSTALL/bin:$PATH"
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    13
241
f71d300205b7 Release v0.9
František Kučera <franta-hg@frantovo.cz>
parents: 221
diff changeset
    14
rm -rf "$RELPIPE_BUILD"/relpipe-*
f71d300205b7 Release v0.9
František Kučera <franta-hg@frantovo.cz>
parents: 221
diff changeset
    15
mkdir -p "$RELPIPE_SRC" "$RELPIPE_BUILD" "$RELPIPE_INSTALL"
219
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    16
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    17
# Helper functions:
241
f71d300205b7 Release v0.9
František Kučera <franta-hg@frantovo.cz>
parents: 221
diff changeset
    18
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; }
f71d300205b7 Release v0.9
František Kučera <franta-hg@frantovo.cz>
parents: 221
diff changeset
    19
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
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    20
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    21
# Download all sources:
250
d16336d1c61f Release v0.10
František Kučera <franta-hg@frantovo.cz>
parents: 241
diff changeset
    22
relpipe_download lib-protocol lib-reader lib-writer lib-cli lib-xmlwriter in-cli in-fstab in-xml in-csv in-filesystem out-gui.qt out-nullbyte out-ods out-tabular out-xml out-csv tr-cut tr-grep tr-python tr-sed tr-validator tr-guile
d16336d1c61f Release v0.10
František Kučera <franta-hg@frantovo.cz>
parents: 241
diff changeset
    23
d16336d1c61f Release v0.10
František Kučera <franta-hg@frantovo.cz>
parents: 241
diff changeset
    24
# 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
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    25
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    26
# Build and install libraries:
241
f71d300205b7 Release v0.9
František Kučera <franta-hg@frantovo.cz>
parents: 221
diff changeset
    27
relpipe_install lib-protocol lib-reader lib-writer lib-cli lib-xmlwriter
219
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    28
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    29
# Build and install tools:
250
d16336d1c61f Release v0.10
František Kučera <franta-hg@frantovo.cz>
parents: 241
diff changeset
    30
relpipe_install in-fstab in-cli in-fstab in-xml in-csv tr-cut tr-grep tr-sed tr-guile out-nullbyte out-ods out-tabular out-xml out-csv
241
f71d300205b7 Release v0.9
František Kučera <franta-hg@frantovo.cz>
parents: 221
diff changeset
    31
f71d300205b7 Release v0.9
František Kučera <franta-hg@frantovo.cz>
parents: 221
diff changeset
    32
# relpipe_install in-filesystem # requires GCC 8 or patching (see below)
219
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    33
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    34
# Clean-up:
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    35
unset -f relpipe_install
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    36
unset -f relpipe_download
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    37
unset -v RELPIPE_VERSION
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    38
unset -v RELPIPE_SRC
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    39
unset -v RELPIPE_BUILD
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    40
unset -v RELPIPE_INSTALL
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    41
250
d16336d1c61f Release v0.10
František Kučera <franta-hg@frantovo.cz>
parents: 241
diff changeset
    42
# Filter your your fstab using Guile Scheme and view it like on an 80s green screen terminal!
d16336d1c61f Release v0.10
František Kučera <franta-hg@frantovo.cz>
parents: 241
diff changeset
    43
relpipe-in-fstab | relpipe-tr-guile --relation 'fstab' --where '(or (= $pass 1) (string= $type "swap") )' | relpipe-out-tabular