-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.sh
More file actions
executable file
·200 lines (151 loc) · 5.89 KB
/
install.sh
File metadata and controls
executable file
·200 lines (151 loc) · 5.89 KB
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
#!/bin/bash
os=$(uname)
arch=$(uname -m)
required_node_version="10.17.0"
required_npm_version="6.11.3"
get_node_version()
{
version=""
if command -v node > /dev/null; then
version=$(node -v)
version=${version#"v"}
fi
echo $version
}
find_node()
{
if command -v node > /dev/null; then
IFS=':'
read -ra ADDR <<< "$PATH"
for path in "${ADDR[@]}"; do
if [[ -f "$path/node" ]]; then
echo $(cd $path/../;pwd)
break
fi
done
IFS=' '
else
echo "/usr/local"
fi
}
install_node()
{
if command -v yum > /dev/null; then
yum install -y python make gcc gcc-c++ nodejs
elif command -v apt-get > /dev/null; then
apt-get install -y python make gcc g++ nodejs npm
fi
}
uninstall_node()
{
rm -f $1/bin/node > /dev/null 2>&1
unlink $1/bin/nodejs > /dev/null 2>&1
unlink $1/bin/npm > /dev/null 2>&1
unlink $1/bin/npx > /dev/null 2>&1
}
upgrade_node()
{
node_path=$(find_node)
export npm_config_loglevel=error
npm_prefix=$(npm get prefix)
case $os in
"Linux")
case $arch in
"x86_64")
uninstall_node $node_path
curl -k -O https://nodejs.org/dist/v$required_node_version/node-v$required_node_version-linux-x64.tar.gz
tar -xzf ./node-v$required_node_version-linux-x64.tar.gz -C $node_path --strip-components=1 --no-same-owner > /dev/null 2>&1
rm -f ./node-v$required_node_version-linux-x64.tar.gz > /dev/null 2>&1
npm config set -g prefix $npm_prefix
npm install -g npm@$required_npm_version
npm config set -g prefix $npm_prefix
;;
"armv6l")
uninstall_node $node_path
curl -k -O https://nodejs.org/dist/v$required_node_version/node-v$required_node_version-linux-armv6l.tar.gz
tar -xzf ./node-v$required_node_version-linux-armv7l.tar.gz -C $node_path --strip-components=1 --no-same-owner > /dev/null 2>&1
rm -f ./node-v$required_node_version-linux-armv7l.tar.gz > /dev/null 2>&1
npm config set -g prefix $npm_prefix
npm install -g npm@$required_npm_version
npm config set -g prefix $npm_prefix
;;
"armv7l")
uninstall_node $node_path
curl -k -O https://nodejs.org/dist/v$required_node_version/node-v$required_node_version-linux-armv7l.tar.gz
tar -xzf ./node-v$required_node_version-linux-armv7l.tar.gz -C $node_path --strip-components=1 --no-same-owner > /dev/null 2>&1
rm -f ./node-v$required_node_version-linux-armv7l.tar.gz > /dev/null 2>&1
npm config set -g prefix $npm_prefix
npm install -g npm@$required_npm_version
npm config set -g prefix $npm_prefix
;;
"armv8l")
uninstall_node $node_path
curl -k -O https://nodejs.org/dist/v$required_node_version/node-v$required_node_version-linux-arm64.tar.gz
tar -xzf ./node-v$required_node_version-linux-arm64.tar.gz -C $node_path --strip-components=1 --no-same-owner > /dev/null 2>&1
rm -f ./node-v$required_node_version-linux-arm64.tar.gz > /dev/null 2>&1
npm config set -g prefix $npm_prefix
npm install -g npm@$required_npm_version
npm config set -g prefix $npm_prefix
;;
esac
;;
"Darwin")
uninstall_node $node_path
curl -O https://nodejs.org/dist/v$required_node_version/node-v$required_node_version-darwin-x64.tar.gz
tar -xzf ./node-v$required_node_version-linux-x64.tar.gz -C $node_path --strip-components=1 --no-same-owner > /dev/null 2>&1
rm -f ./node-v$required_node_version-linux-x64.tar.gz > /dev/null 2>&1
npm config set -g prefix $npm_prefix
npm install -g npm@$required_npm_version
npm config set -g prefix $npm_prefix
;;
esac
}
echo ""
echo "Thank You for choosing HOOBS"
echo "---------------------------------------------------------"
node_version=$(get_node_version)
if [[ "$node_version" != "" ]]; then
echo "Node Version $node_version"
fi
if [[ "$os" == "Darwin" && "$node_version" == "" ]]; then
echo "Can Not Install Node"
echo "------------------------------------------------------------"
echo "Please go to https://nodejs.org/ and download and install "
echo "Node for macOS. "
echo "------------------------------------------------------------"
exit 1
fi
echo "Updating Repositories"
if command -v yum > /dev/null; then
yum install -y curl tar git
elif command -v apt-get > /dev/null; then
apt-get update
apt-get install -y curl tar git
fi
if [[ "$node_version" == "" ]]; then
echo "Installing Node"
install_node
upgrade_node
node_version=$(get_node_version)
echo "Node $node_version Installed"
npm_version=$(npm -v)
echo "NPM $npm_version Installed"
fi
npm cache clean --force > /dev/null 2>&1
echo "---------------------------------------------------------"
echo ""
npm install -g --unsafe-perm /home/hoobs/hoobs-core.tgz
sleep 3
if [[ "$os" != "Darwin" ]]; then
if command -v hoobs-init > /dev/null; then
echo ""
echo "Initializing HOOBS"
echo "---------------------------------------------------------"
hoobs-init
elif command -v hoobs > /dev/null; then
echo ""
echo "Initializing HOOBS"
echo "---------------------------------------------------------"
hoobs service install
fi
fi