|
@@ -35,8 +35,8 @@ VARIANTS='mesh'
|
35
|
35
|
|
36
|
36
|
# change these versions at your peril. Things will often crash if you don't
|
37
|
37
|
# have specifically the correct versions
|
38
|
|
-NODEJS_VERSION='6.9.0'
|
39
|
|
-NODEJS_N_VERSION='2.1.4'
|
|
38
|
+NODEJS_VERSION='6.10.1'
|
|
39
|
+NODEJS_N_VERSION='2.1.7'
|
40
|
40
|
NPM_VERSION='4.0.5'
|
41
|
41
|
|
42
|
42
|
# This file keeps track of the apps needing nodejs
|
|
@@ -96,6 +96,9 @@ function remove_nodejs {
|
96
|
96
|
if [ -d /usr/lib/node_modules ]; then
|
97
|
97
|
rm -rf /usr/lib/node_modules
|
98
|
98
|
fi
|
|
99
|
+ if [ -f /usr/bin/n ]; then
|
|
100
|
+ rm /usr/bin/n
|
|
101
|
+ fi
|
99
|
102
|
|
100
|
103
|
remove_app nodejs
|
101
|
104
|
|
|
@@ -105,12 +108,32 @@ function remove_nodejs {
|
105
|
108
|
fi
|
106
|
109
|
}
|
107
|
110
|
|
|
111
|
+function upgrade_nodejs {
|
|
112
|
+ CURR_NODE_VERSION=$(node --version)
|
|
113
|
+ CURR_NPM_VERSION=$(npm --version)
|
|
114
|
+ CURR_N_VERSION=$(n --version)
|
|
115
|
+ if [[ "$CURR_NPM_VERSION" != "$NPM_VERSION" ]]; then
|
|
116
|
+ npm install -g npm@${NPM_VERSION} --save
|
|
117
|
+ fi
|
|
118
|
+ if [[ "$CURR_N_VERSION" != "$NODEJS_N_VERSION" ]]; then
|
|
119
|
+ npm upgrade -g n@${NODEJS_N_VERSION} --save
|
|
120
|
+ fi
|
|
121
|
+ if [[ "$CURR_NODE_VERSION" != "$NODEJS_VERSION" ]]; then
|
|
122
|
+ n {NODEJS_VERSION}
|
|
123
|
+ fi
|
|
124
|
+ cp /usr/local/bin/n /usr/bin/n
|
|
125
|
+ cp /usr/local/bin/npm /usr/bin/npm
|
|
126
|
+ cp /usr/local/bin/node /usr/bin/nodejs
|
|
127
|
+ cp /usr/local/bin/node /usr/bin/node
|
|
128
|
+}
|
|
129
|
+
|
108
|
130
|
function install_nodejs {
|
109
|
131
|
if [ $INSTALLING_MESH ]; then
|
110
|
132
|
mesh_install_nodejs
|
111
|
133
|
return
|
112
|
134
|
fi
|
113
|
135
|
if [[ $(is_completed $FUNCNAME) == "1" ]]; then
|
|
136
|
+ upgrade_nodejs
|
114
|
137
|
return
|
115
|
138
|
fi
|
116
|
139
|
|
|
@@ -130,8 +153,21 @@ cp /usr/bin/nodejs /usr/local/bin/node
|
130
|
153
|
cp /usr/bin/nodejs /usr/bin/node
|
131
|
154
|
/usr/bin/curl -0 -L https://npmjs.org/install.sh | sh
|
132
|
155
|
npm install -g n@${NODEJS_N_VERSION} --save
|
|
156
|
+if [ -f /usr/local/bin/n ]; then
|
|
157
|
+ exit 1
|
|
158
|
+fi
|
|
159
|
+cp /usr/local/bin/n /usr/bin/n
|
133
|
160
|
n ${NODEJS_VERSION}
|
|
161
|
+if [ ! -f /usr/local/bin/node ]; then
|
|
162
|
+ exit 2
|
|
163
|
+fi
|
|
164
|
+cp /usr/local/bin/node /usr/bin/nodejs
|
|
165
|
+cp /usr/local/bin/node /usr/bin/node
|
134
|
166
|
npm install -g npm@${NPM_VERSION} --save
|
|
167
|
+if [ ! -f /usr/local/bin/npm ]; then
|
|
168
|
+ exit 3
|
|
169
|
+fi
|
|
170
|
+cp /usr/local/bin/npm /usr/bin/npm
|
135
|
171
|
npm install -g pug@2.0.0-beta6 --save
|
136
|
172
|
npm install -g graceful-fs@4.1.10 --save
|
137
|
173
|
npm install -g minimatch@3.0.3 --save
|
|
@@ -145,6 +181,24 @@ EOF
|
145
|
181
|
fi
|
146
|
182
|
rm -f /root/install-nodejs.sh
|
147
|
183
|
|
|
184
|
+ # node seems tricky so here we're going to double check
|
|
185
|
+ # that the versions we expect did get installed
|
|
186
|
+ CURR_NODE_VERSION=$(node --version)
|
|
187
|
+ CURR_NPM_VERSION=$(npm --version)
|
|
188
|
+ CURR_N_VERSION=$(n --version)
|
|
189
|
+ if [[ "$CURR_NPM_VERSION" != "$NPM_VERSION" ]]; then
|
|
190
|
+ echo $"Expected npm version $NPM_VERSION but actually have $CURR_NPM_VERSION"
|
|
191
|
+ exit 6728252
|
|
192
|
+ fi
|
|
193
|
+ if [[ "$CURR_N_VERSION" != "$NODEJS_N_VERSION" ]]; then
|
|
194
|
+ echo $"Expected n version $NODEJS_N_VERSION but actually have $CURR_N_VERSION"
|
|
195
|
+ exit 5267452
|
|
196
|
+ fi
|
|
197
|
+ if [[ "$CURR_NODE_VERSION" != "$NODEJS_VERSION" ]]; then
|
|
198
|
+ echo $"Expected node version $NODEJS_VERSION but actually have $CURR_NODE_VERSION"
|
|
199
|
+ exit 5274527
|
|
200
|
+ fi
|
|
201
|
+
|
148
|
202
|
if [ $1 ]; then
|
149
|
203
|
if ! grep "install_${1}" $NODEJS_INSTALLED_APPS_FILE; then
|
150
|
204
|
echo "install_${1}" >> $NODEJS_INSTALLED_APPS_FILE
|