@@ -4,49 +4,79 @@ set -e # Exit immediately if a command exits with a non-zero status
4
4
set -u # Treat unset variables as an error
5
5
6
6
if [ " $# " -ne 1 ]; then
7
- echo " Usage: $0 <mongodb-version>"
8
- echo " Example: $0 8.0.5"
7
+ echo >&2 " Usage: $0 <mongodb-version>"
8
+ echo >&2 " Example: $0 8.0.5"
9
9
exit 1
10
10
fi
11
11
12
12
MONGODB=" $1 "
13
+ MONGOSH=2.5.1
13
14
14
15
# Determine build name based on version
15
- if [[ " ${MONGODB} " =~ ^(7.0| 8.0) ]]; then
16
+ if [[ " $MONGODB " =~ ^(6.0| 7.0| 8.0) ]]; then
17
+ mongo_build=" mongodb-linux-x86_64-ubuntu2204-${MONGODB} "
18
+ elif [[ " $MONGODB " =~ ^(4.4| 5.0) ]]; then
16
19
mongo_build=" mongodb-linux-x86_64-ubuntu2004-${MONGODB} "
17
- elif [[ " ${MONGODB} " =~ ^(4.0| 4.2| 4.4| 5.0| 6.0) ]]; then
18
- mongo_build=" mongodb-linux-x86_64-ubuntu1804-${MONGODB} "
19
- elif [[ " ${MONGODB} " =~ ^3.6 ]]; then
20
- mongo_build=" mongodb-linux-x86_64-${MONGODB} "
21
20
else
22
- echo " Error: Unsupported MongoDB version: ${MONGODB} "
21
+ echo >&2 " Error: Unsupported MongoDB version: ${MONGODB} "
23
22
usage
24
23
fi
25
24
26
- download_url= " http://fastdl.mongodb.org/linux/ ${mongo_build} .tgz"
27
- tarball= " ${mongo_build} .tgz "
25
+ mongo_tarball= " ${mongo_build} .tgz"
26
+ mongo_download_url= " http://fastdl.mongodb.org/linux/ ${mongo_tarball} "
28
27
29
- echo " Downloading MongoDB from ${download_url} ..."
30
- if ! wget --quiet " ${download_url} " ; then
31
- echo " Error: Failed to download MongoDB."
32
- exit 1
33
- fi
28
+ mongosh_build=" mongosh-${MONGOSH} -linux-x64"
29
+ mongosh_tarball=" ${mongosh_build} .tgz"
30
+ mongosh_download_url=" https://github.com/mongodb-js/mongosh/releases/download/v${MONGOSH} /${mongosh_tarball} "
31
+
32
+ set -- \
33
+ MongoDB " $mongo_tarball " " $mongo_download_url " \
34
+ " MongoDB Shell" " $mongosh_tarball " " $mongosh_download_url "
35
+
36
+ while (( $# > 0 )) ; do
37
+ name=" $1 "
38
+ tarball=" $2 "
39
+ download_url=" $3 "
40
+ shift 3
41
+
42
+ echo >&2 " Downloading ${name} from ${download_url} ..."
43
+ if ! wget --quiet " $download_url " ; then
44
+ echo >&2 " Error: Failed to download ${name} ."
45
+ exit 1
46
+ fi
34
47
35
- echo " Extracting ${tarball} ..."
36
- if ! tar xzf " ${tarball} " ; then
37
- echo " Error: Failed to extract ${tarball} "
48
+ echo >&2 " Extracting ${tarball} ..."
49
+ if ! tar xzf " ${tarball} " ; then
50
+ echo >&2 " Error: Failed to extract ${tarball} "
51
+ exit 1
52
+ fi
53
+ done
54
+
55
+ mongodb_dir=$( find " ${PWD} /" -type d -name " mongodb-linux-x86_64*" -print -quit)
56
+ if [ -z " $mongodb_dir " ]; then
57
+ echo >&2 " Error: Could not find MongoDB directory after extraction."
38
58
exit 1
39
59
fi
40
60
41
- mongodb_dir=$( find " ${PWD} /" -type d -name " mongodb-linux-x86_64*" | head -n 1)
42
- if [ -z " ${mongodb_dir} " ]; then
43
- echo " Error: Could not find MongoDB directory after extraction."
44
- exit 1
61
+ mongosh_dir=$( find " ${PWD} /" -type d -name " $mongosh_build " -print -quit)
62
+ if [ ! -d " $mongosh_dir " ]; then
63
+ echo >&2 " Failed to find extracted mongosh directory."
64
+ rm -f " $TARBALL "
65
+ exit 1
45
66
fi
46
67
47
- echo " MongoDB installed at: ${mongodb_dir} "
48
- " ${mongodb_dir} /bin/mongod" --version
68
+ echo >&2 " Creating mongo.path"
69
+ echo " export PATH='${mongodb_dir} /bin:${mongosh_dir} /bin:'" ' $PATH' \
70
+ | tee >&2 mongo.path
71
+
72
+ . mongo.path
73
+
74
+ echo >&2 " MongoDB installed at: ${mongodb_dir} "
75
+ mongod >&2 --version
76
+
77
+ echo >&2 " Testing mongosh installation..."
78
+ mongosh >&2 --version
49
79
50
80
# Cleanup
51
- echo " Cleaning up..."
52
- rm -f " ${tarball} "
81
+ echo >&2 " Cleaning up..."
82
+ rm -f " $mongo_tarball " " $mongosh_tarball "
0 commit comments