forked from gochain/web3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
install.sh
executable file
·107 lines (95 loc) · 2.89 KB
/
install.sh
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
#!/bin/sh
set -e
# Install script to install web3
if [ "$1" != "" ]; then
version="$1"
else
version=`curl --silent https://api.github.com/repos/gochain/web3/releases/latest | grep tag_name | cut -f 2 -d : | cut -f 2 -d '"'`
fi
command_exists() {
command -v "$@" > /dev/null 2>&1
}
case "$(uname -m)" in
*64)
;;
*)
echo >&2 'Error: you are not using a 64bit platform.'
echo >&2 'Web3 CLI currently only supports 64bit platforms.'
exit 1
;;
esac
user="$(id -un 2>/dev/null || true)"
sh_c='sh -c'
if [ "$user" != 'root' ]; then
if command_exists sudo; then
sh_c='sudo -E sh -c'
elif command_exists su; then
sh_c='su -c'
else
echo >&2 'Error: this installer needs the ability to run commands as root.'
echo >&2 'We are unable to find either "sudo" or "su" available to make this happen.'
exit 1
fi
fi
curl=''
if command_exists curl; then
curl='curl -sSL -o'
elif command_exists wget; then
curl='wget -qO'
elif command_exists busybox && busybox --list-modules | grep -q wget; then
curl='busybox wget -qO'
else
echo >&2 'Error: this installer needs the ability to run wget or curl.'
echo >&2 'We are unable to find either "wget" or "curl" available to make this happen.'
exit 1
fi
url='https://github.com/gochain/web3/releases/download'
# perform some very rudimentary platform/architecture detection
case "$(uname)" in
Linux)
case "`uname -m`" in
x86_64|amd64)
echo "Installing web3 for linux x86_64"
$sh_c "$curl /tmp/web3_linux $url/$version/web3_linux"
;;
arm*|aarch*)
$sh_c "$curl /tmp/web3_linux $url/$version/web3_linux_arm64"
echo "Installing web3 for linux_arm64"
;;
*)
echo "Unknown architecture: $(uname -i)";;
esac
$sh_c "mv /tmp/web3_linux /usr/local/bin/web3"
$sh_c "chmod +x /usr/local/bin/web3"
web3
;;
Darwin)
case "`uname -m`" in
x86_64|amd64)
$sh_c "$curl /tmp/web3_mac $url/$version/web3_mac"
echo "Installing web3 for mac x86_64"
;;
arm*|aarch*)
$sh_c "$curl /tmp/web3_mac $url/$version/web3_mac_arm64"
echo "Installing web3 for mac arm64"
;;
*)
echo "Unknown architecture: $(uname -i)";;
esac
$sh_c "mv /tmp/web3_mac /usr/local/bin/web3"
$sh_c "chmod +x /usr/local/bin/web3"
web3
;;
WindowsNT)
$sh_c "$curl $url/$version/web3.exe"
# TODO how to make executable? chmod? how to do tmp file and move?
web3.exe
;;
*)
cat >&2 <<'EOF'
Either your platform is not easily detectable or is not supported by this
installer script (yet - PRs welcome!.
EOF
exit 1
esac
exit 0