relpipe-data/examples/release-v0.18.sh
author František Kučera <franta-hg@frantovo.cz>
Sat, 08 May 2021 21:33:15 +0200
branchv_0
changeset 322 060d2590e77c
parent 319 relpipe-data/examples/release-v0.17.1.sh@2a5f26e69a76
child 323 e2d607e4a4f4
permissions -rw-r--r--
first version of release-v0.18.sh
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:
322
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
     2
if [[ "$USER" == "root" ]]; then
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
     3
	apt install g++ make cmake mercurial pkg-config
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
     4
	apt install libxerces-c-dev                                                 # needed only for relpipe-in-xml module
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
     5
	apt install guile-2.2-dev                                                   # needed only for relpipe-tr-scheme module
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
     6
	apt install gawk                                                            # needed only for relpipe-tr-awk module
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
     7
	apt install libxml++2.6-dev                                                 # needed only for relpipe-in-xmltable module
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
     8
	apt install unixodbc-dev                                                    # needed only for relpipe-tr-sql module
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
     9
	apt install libsqliteodbc                                                   # needed only for relpipe-tr-sql module if used with SQLite
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    10
	apt install odbc-postgresql                                                 # needed only for relpipe-tr-sql module if used with PostgreSQL
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    11
	apt install libjack-jackd2-dev                                              # needed only for relpipe-in-jack and relpipe-out-jack modules; Jack1 should also work
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    12
	apt install libxi-dev libxtst-dev                                           # needed only for relpipe-in-x11 and relpipe-out-x11
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    13
	apt install libzbar-dev libmagick++-dev                                     # needed only for relpipe-in-barcode and the barcode-reader streamlet
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    14
	apt install libgumbo-dev                                                    # needed only for relpipe-in-htmltable
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    15
	apt install libyaml-dev                                                     # needed only for relpipe-in-yaml, relpipe-in-yamltable, relpipe-in-json and relpipe-in-jsontable
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    16
	exit;
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    17
fi
219
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    18
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    19
# Run rest of installation as a non-root user:
322
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    20
export RELPIPE_VERSION="v0.18"
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    21
export RELPIPE_VERSION="tip" # FIXME: v0.18
219
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    22
export RELPIPE_SRC=~/src
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    23
export RELPIPE_BUILD=~/build
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    24
export RELPIPE_INSTALL=~/install
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    25
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
    26
export PATH="$RELPIPE_INSTALL/bin:$PATH"
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    27
241
f71d300205b7 Release v0.9
František Kučera <franta-hg@frantovo.cz>
parents: 221
diff changeset
    28
rm -rf "$RELPIPE_BUILD"/relpipe-*
f71d300205b7 Release v0.9
František Kučera <franta-hg@frantovo.cz>
parents: 221
diff changeset
    29
mkdir -p "$RELPIPE_SRC" "$RELPIPE_BUILD" "$RELPIPE_INSTALL"
219
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    30
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    31
# Helper functions:
241
f71d300205b7 Release v0.9
František Kučera <franta-hg@frantovo.cz>
parents: 221
diff changeset
    32
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
    33
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
    34
322
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    35
RELPIPE_LIBS=(lib-common lib-reader lib-writer lib-cli lib-xmlwriter)
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    36
RELPIPE_TOOLS=(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-scheme tr-awk tr-sql in-jack out-jack)
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    37
RELPIPE_TOOLS+=(in-asn1table in-barcode in-htmltable in-ini in-initable in-json in-jsontable in-mimetable in-x11 in-yaml in-yamltable out-ini out-x11 out-xml out-yaml tr-xpath) # since v0.18
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    38
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    39
219
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    40
# Download all sources:
322
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    41
relpipe_download "${RELPIPE_LIBS[@]}" "${RELPIPE_TOOLS[@]}"
250
d16336d1c61f Release v0.10
František Kučera <franta-hg@frantovo.cz>
parents: 241
diff changeset
    42
d16336d1c61f Release v0.10
František Kučera <franta-hg@frantovo.cz>
parents: 241
diff changeset
    43
# 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
    44
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    45
# Build and install libraries:
322
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    46
relpipe_install "${RELPIPE_LIBS[@]}"
219
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    47
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    48
# Build and install tools:
322
060d2590e77c first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents: 319
diff changeset
    49
relpipe_install "${RELPIPE_TOOLS[@]}"
219
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    50
282
ec02133045a3 Release v0.14 – SQL, AWK, Bash completion, GPLv3
František Kučera <franta-hg@frantovo.cz>
parents: 264
diff changeset
    51
# Load Bash completion scripts:
ec02133045a3 Release v0.14 – SQL, AWK, Bash completion, GPLv3
František Kučera <franta-hg@frantovo.cz>
parents: 264
diff changeset
    52
for c in "$RELPIPE_SRC"/relpipe-*/bash-completion.sh ; do . "$c"; done
ec02133045a3 Release v0.14 – SQL, AWK, Bash completion, GPLv3
František Kučera <franta-hg@frantovo.cz>
parents: 264
diff changeset
    53
294
abbc9bcfbcc4 Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents: 282
diff changeset
    54
# Enable streamlet examples:
abbc9bcfbcc4 Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents: 282
diff changeset
    55
export RELPIPE_IN_FILESYSTEM_STREAMLET_PATH="$RELPIPE_SRC"/relpipe-in-filesystem.cpp/streamlet-examples/
abbc9bcfbcc4 Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents: 282
diff changeset
    56
219
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    57
# Clean-up:
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    58
unset -f relpipe_install
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    59
unset -f relpipe_download
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    60
unset -v RELPIPE_VERSION
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    61
unset -v RELPIPE_SRC
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    62
unset -v RELPIPE_BUILD
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    63
unset -v RELPIPE_INSTALL
a94eb371f77e Release v0.8
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    64
317
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents: 297
diff changeset
    65
# List available JACK ports (the JACK daemon should be running):
fce3d6290c40 Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents: 297
diff changeset
    66
relpipe-in-jack --list-ports true --list-midi-messages false | relpipe-out-tabular