File: postinstall.sh

package info (click to toggle)
node-mapnik 3.7.2%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 15,376 kB
  • sloc: cpp: 16,551; xml: 961; sh: 522; makefile: 80; lisp: 10
file content (85 lines) | stat: -rwxr-xr-x 2,973 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/usr/bin/env bash
set -eu
set -o pipefail

MODULE_PATH=./lib/binding
MAPNIK_SDK=./mason_packages/.link

# Check if we are using Mason's mapnik
if [[ ! "$(which mapnik-config)" -ef "$MAPNIK_SDK/bin/mapnik-config" ]]; then
  echo "
var path = require('path');
module.exports.paths = {
    'fonts':         '$(mapnik-config --fonts)',
    'input_plugins': '$(mapnik-config --input-plugins)',
    'mapnik_index':  '$(which mapnik-index)',
    'shape_index':   '$(which shapeindex)'
};
" > ${MODULE_PATH}/mapnik_settings.js
# once https://github.com/mapnik/mapnik/pull/3759 is fixed
# this can be enabled
#  echo "
#module.exports.env = {
#    'ICU_DATA':      '$(mapnik-config --icu-data)',
#    'GDAL_DATA':     '$(mapnik-config --gdal-data)',
#    'PROJ_LIB':      '$(mapnik-config --proj-lib)'
#};
#" >> ${MODULE_PATH}/mapnik_settings.js

  exit 0;
fi

mkdir -p ${MODULE_PATH}/bin/

# the below switch is used since on osx the default cp
# resolves symlinks automatically with `cp -r`
# whereas on linux we need to pass `cp -rL`. But the latter
# command is not supported on OS X. We could upgrade coreutils
# but ideally we don't depend on more dependencies
if [[ $(uname -s) == 'Darwin' ]]; then
    cp ${MAPNIK_SDK}/bin/mapnik-index ${MODULE_PATH}/bin/
    # copy shapeindex
    cp ${MAPNIK_SDK}/bin/shapeindex ${MODULE_PATH}/bin/
    # copy lib
    mkdir -p ${MODULE_PATH}/lib/
    cp ${MAPNIK_SDK}/lib/libmapnik.* ${MODULE_PATH}/lib/
    # copy plugins
    cp -r ${MAPNIK_SDK}/lib/mapnik ${MODULE_PATH}/lib/
    # copy share data
    mkdir -p ${MODULE_PATH}/share/gdal
    cp -L ${MAPNIK_SDK}/share/gdal/*.* ${MODULE_PATH}/share/gdal/
    cp -r ${MAPNIK_SDK}/share/proj ${MODULE_PATH}/share/
    mkdir -p ${MODULE_PATH}/share/icu
    cp -L ${MAPNIK_SDK}/share/icu/*/*dat ${MODULE_PATH}/share/icu/
else
    cp -L ${MAPNIK_SDK}/bin/mapnik-index ${MODULE_PATH}/bin/
    # copy shapeindex
    cp -L ${MAPNIK_SDK}/bin/shapeindex ${MODULE_PATH}/bin/
    # copy lib
    mkdir -p ${MODULE_PATH}/lib/
    cp -L ${MAPNIK_SDK}/lib/libmapnik.* ${MODULE_PATH}/lib/
    # copy plugins
    cp -rL ${MAPNIK_SDK}/lib/mapnik ${MODULE_PATH}/lib/
    # copy share data
    mkdir -p ${MODULE_PATH}/share/gdal
    cp -rL ${MAPNIK_SDK}/share/gdal/*.* ${MODULE_PATH}/share/gdal/
    cp -rL ${MAPNIK_SDK}/share/proj ${MODULE_PATH}/share/
    mkdir -p ${MODULE_PATH}/share/icu
    cp -rL ${MAPNIK_SDK}/share/icu/*/*dat ${MODULE_PATH}/share/icu/
fi

# generate new settings
echo "
var path = require('path');
module.exports.paths = {
    'fonts': path.join(__dirname, 'lib/mapnik/fonts'),
    'input_plugins': path.join(__dirname, 'lib/mapnik/input'),
    'mapnik_index': path.join(__dirname, 'bin/mapnik-index'),
    'shape_index': path.join(__dirname, 'bin/shapeindex')
};
module.exports.env = {
    'ICU_DATA': path.join(__dirname, 'share/icu'),
    'GDAL_DATA': path.join(__dirname, 'share/gdal'),
    'PROJ_LIB': path.join(__dirname, 'share/proj')
};
" > ${MODULE_PATH}/mapnik_settings.js