forked from meteor/meteor
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall-engine.sh
More file actions
166 lines (125 loc) · 4.17 KB
/
install-engine.sh
File metadata and controls
166 lines (125 loc) · 4.17 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
#!/bin/sh
# This is the Meteor install script!
# Are you looking at this in your web browser, and would like to install Meteor?
# Just open up your terminal and type:
#
# curl https://install.meteor.com/ | sh
#
# Meteor currently supports:
# - Mac: OS X 10.6 and above
# - Linux: x86 and x86_64 systems
# Now, on to the actual installer!
## NOTE sh NOT bash. This script should be POSIX sh only, since we don't
## know what shell the user has. Debian uses 'dash' for 'sh', for
## example.
# Is Meteor already installed (in /usr/local/bin (engine) or /usr/bin
# (pre-engine)? If so, just run the updater instead of starting from
# scratch. (This means that if you have pre-engine installed and run this curl
# install script instead of "meteor update", the existing install will be
# cleaned up.)
if [ -x /usr/local/bin/meteor ]; then
exec /usr/local/bin/meteor update
fi
if [ -x /usr/bin/meteor ]; then
exec /usr/bin/meteor update
fi
PREFIX="/usr/local"
set -e
set -u
# Let's display everything on stderr.
exec 1>&2
UNAME=$(uname)
if [ "$UNAME" != "Linux" -a "$UNAME" != "Darwin" ] ; then
echo "Sorry, this OS is not supported yet."
exit 1
fi
if [ "$UNAME" = "Darwin" ] ; then
### OSX ###
if [ "i386" != "$(uname -p)" -o "1" != "$(sysctl -n hw.cpu64bit_capable 2>/dev/null || echo 0)" ] ; then
# Can't just test uname -m = x86_64, because Snow Leopard can
# return other values.
echo "Only 64-bit Intel processors are supported at this time."
exit 1
fi
ARCH="x86_64"
elif [ "$UNAME" = "Linux" ] ; then
### Linux ###
ARCH=$(uname -m)
if [ "$ARCH" != "i686" -a "$ARCH" != "x86_64" ] ; then
echo "Unusable architecture: $ARCH"
echo "Meteor only supports i686 and x86_64 for now."
exit 1
fi
fi
PLATFORM="${UNAME}_${ARCH}"
trap "echo Installation failed." EXIT
# If you already have a warehouse (but don't have meteor in PATH), we do a clean
# install here:
[ -e "$HOME/.meteor" ] && rm -rf "$HOME/.meteor"
TARBALL_URL="https://warehouse.meteor.com/bootstrap/__RELEASE__/meteor-bootstrap-${PLATFORM}.tar.gz"
INSTALL_TMPDIR="$HOME/.meteor-install-tmp"
rm -rf "$INSTALL_TMPDIR"
mkdir "$INSTALL_TMPDIR"
echo "Downloading Meteor distribution"
curl --progress-bar --fail "$TARBALL_URL" | tar -xzf - -C "$INSTALL_TMPDIR" -o
# bomb out if it didn't work, eg no net
test -x "${INSTALL_TMPDIR}/.meteor/meteor"
mv "${INSTALL_TMPDIR}/.meteor" "$HOME"
rmdir "${INSTALL_TMPDIR}"
# just double-checking :)
test -x "$HOME/.meteor/meteor"
"$HOME/.meteor/meteor" --get-ready
echo
echo "Meteor __RELEASE__ has been installed in your home directory (~/.meteor)."
LAUNCHER="$HOME/.meteor/tools/latest/launch-meteor"
if cp "$LAUNCHER" "$PREFIX/bin/meteor" >/dev/null 2>&1; then
echo "Writing a launcher script to $PREFIX/bin/meteor for your convenience."
cat <<"EOF"
To get started fast:
$ meteor create ~/my_cool_app
$ cd ~/my_cool_app
$ meteor
Or see the docs at:
docs.meteor.com
EOF
elif type sudo >/dev/null 2>&1; then
echo "Writing a launcher script to $PREFIX/bin/meteor for your convenience."
echo "This may prompt for your password."
# New macs (10.9+) don't ship with /usr/local, however it is still in
# the default PATH. We still install there, we just need to create the
# directory first.
if [ ! -d "$PREFIX/bin" ] ; then
sudo mkdir -m 755 "$PREFIX" || true
sudo mkdir -m 755 "$PREFIX/bin" || true
fi
if sudo cp "$LAUNCHER" "$PREFIX/bin/meteor"; then
cat <<"EOF"
To get started fast:
$ meteor create ~/my_cool_app
$ cd ~/my_cool_app
$ meteor
Or see the docs at:
docs.meteor.com
EOF
else
cat <<"EOF"
Couldn't write the launcher script. Please either:
(1) Run the following as root:
cp ~/.meteor/tools/latest/launch-meteor /usr/bin/meteor
(2) Add ~/.meteor to your path, or
(3) Rerun this command to try again.
Then to get started, take a look at 'meteor --help' or see the docs at
docs.meteor.com.
EOF
fi
else
cat <<"EOF"
Now you need to do one of the following:
(1) Add ~/.meteor to your path, or
(2) Run this command as root:
cp ~/.meteor/tools/latest/launch-meteor /usr/bin/meteor
Then to get started, take a look at 'meteor --help' or see the docs at
docs.meteor.com.
EOF
fi
trap - EXIT