1 | #!/bin/bash
|
2 |
|
3 | install_node(){
|
4 | local node_version="$1"
|
5 | local os_arch="$2"
|
6 | echo "* installing node $node_version"
|
7 | nvm install "$node_version"
|
8 | local base_url="$(node -p "v=parseInt(process.versions.node),(v>=1&&v<4?'https://iojs.org/dist/':'https://nodejs.org/dist/')+process.version")"
|
9 | local x86_file=$(node -p "v=parseInt(process.versions.node),(v>=1&&v<4?'iojs':'node')+'-'+process.version+'-'+process.platform+'-x86'")
|
10 | if [[ "$os_arch" == "386" ]]; then
|
11 | pushd "/tmp" > /dev/null
|
12 | echo '* download node for x86'
|
13 | wget "$base_url/$x86_file.tar.gz";
|
14 | tar -xf $x86_file.tar.gz;
|
15 | export PATH=$x86_file/bin:$PATH;
|
16 | popd > /dev/null
|
17 | fi
|
18 | }
|
19 |
|
20 | install_nvm(){
|
21 | echo '* install nvm'
|
22 | rm -rf ~/.nvm
|
23 | git clone https://github.com/creationix/nvm.git ~/.nvm || return 1
|
24 | pushd ~/.nvm > /dev/null
|
25 | git checkout `git describe --abbrev=0 --tags` || return 1
|
26 | popd > /dev/null
|
27 | source ~/.nvm/nvm.sh
|
28 | }
|
29 |
|
30 | setup(){
|
31 | local os_name="$1"
|
32 | echo '* setting up CXX'
|
33 | if [[ "$os_name" == "linux" ]]; then
|
34 | export CXX=g++-4.8;
|
35 | fi
|
36 | }
|
37 |
|
38 | verify(){
|
39 | echo '* verifying npm'
|
40 | npm --version
|
41 | echo '* verifying node'
|
42 | node --version
|
43 | echo '* verifying CXX'
|
44 | $CXX --version
|
45 | }
|
46 |
|
47 | main(){
|
48 | echo '* installing node'
|
49 | local node_version="$PACKAGER_NODE_VERSION"
|
50 | if [ -z "$node_version" ]; then
|
51 | echo 'Missing PACKAGER_NODE_VERSION environment'
|
52 | exit 1
|
53 | fi
|
54 | local os_name="$TRAVIS_OS_NAME"
|
55 | if [ -z "$os_name" ]; then
|
56 | echo 'Missing TRAVIS_OS_NAME environment'
|
57 | exit 1
|
58 | fi
|
59 | local os_arch="$PACKAGER_ARCH"
|
60 | if [ -z "$os_arch" ]; then
|
61 | echo 'Missing PACKAGER_ARCH environment'
|
62 | exit 1
|
63 | fi
|
64 |
|
65 | setup "$os_name" && \
|
66 | install_nvm && \
|
67 | install_node "$node_version" "$os_arch" && \
|
68 | verify && \
|
69 | echo '* done' && \
|
70 | exit 0
|
71 |
|
72 | echo 'node install failed'
|
73 | exit 1
|
74 | }
|
75 |
|
76 | main
|