|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +set -e |
| 4 | + |
| 5 | +# Check that at least one parameter (type of package to build) has been specified |
| 6 | +if [[ -z $1 ]]; |
| 7 | +then |
| 8 | + echo "Error: must specify if building a deb or rpm package" |
| 9 | + exit 1 |
| 10 | +fi |
| 11 | + |
| 12 | +NODE_BIN=$(which node) |
| 13 | +HOME_PATH=$(dirname "$0")/.. |
| 14 | + |
| 15 | +# Make sure we start from the right path |
| 16 | +cd ${HOME_PATH} |
| 17 | + |
| 18 | +# Create the directories where all files will be copied |
| 19 | +mkdir packaging/BUILD/{fakeroot/etc/nimiq/,modules/,lib/,build/} |
| 20 | + |
| 21 | +# Copy files that need to go verbatim into the package |
| 22 | +cp dist/VERSION ${NODE_BIN} packaging/BUILD/ |
| 23 | +cp -r clients/nodejs/node-ui packaging/BUILD/ |
| 24 | +cp clients/nodejs/sample.conf packaging/BUILD/fakeroot/etc/nimiq/ |
| 25 | +cp package.json packaging/BUILD/ |
| 26 | +cp -r node_modules packaging/BUILD/ |
| 27 | +cp dist/node.* dist/worker-* dist/web.* packaging/BUILD/lib/ |
| 28 | +cp build/Release/nimiq_*.node packaging/BUILD/build |
| 29 | +mv packaging/BUILD/fakeroot/etc/nimiq/sample.conf packaging/BUILD/fakeroot/etc/nimiq/nimiq.conf |
| 30 | + |
| 31 | +# Copy files that need to be modified from their original form |
| 32 | +for i in $(ls clients/nodejs/ | grep 'js$'); |
| 33 | + do sed 's|../../dist/node.js|./lib/node.js|' clients/nodejs/${i} > packaging/BUILD/${i} |
| 34 | +done |
| 35 | + |
| 36 | +for i in $(ls clients/nodejs/modules/); |
| 37 | + do sed 's|../../../dist/|../lib/|' clients/nodejs/modules/${i} > packaging/BUILD/modules/${i} |
| 38 | +done |
| 39 | + |
| 40 | +# Format-specific steps to finally build the binary package |
| 41 | +if [ "$1" == "deb" ] |
| 42 | +then |
| 43 | + sed 's|node "$SCRIPT_PATH/index.js"|/usr/share/nimiq/app/node "/usr/share/nimiq/app/index.js"|' clients/nodejs/nimiq > packaging/BUILD/nimiq |
| 44 | + cd packaging/BUILD |
| 45 | + ../../node_modules/.bin/node-deb --no-default-package-dependencies -- node *.js VERSION build/ lib/ modules/ node-ui/ |
| 46 | + mv *.deb ../../dist/ |
| 47 | +elif [ "$1" == "rpm" ] |
| 48 | +then |
| 49 | + sed 's|node "$SCRIPT_PATH/index.js"|/usr/share/nimiq/node "/usr/share/nimiq/index.js"|' clients/nodejs/nimiq > packaging/BUILD/nimiq |
| 50 | + cd packaging |
| 51 | + rpmbuild -bb SPECS/nimiq.spec |
| 52 | + mv RPMS/x86_64/*.rpm ../dist |
| 53 | +fi |
0 commit comments