@@ -4,49 +4,79 @@ set -e # Exit immediately if a command exits with a non-zero status
44set -u # Treat unset variables as an error
55
66if [ " $# " -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"
99 exit 1
1010fi
1111
1212MONGODB=" $1 "
13+ MONGOSH=2.5.1
1314
1415# Determine build name based on version
15- if [[ " ${MONGODB} " =~ ^(7.0| 8.0) ]]; then
16- 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} "
16+ if [[ " $MONGODB " =~ ^(6.0| 7.0| 8.0) ]]; then
17+ mongodb_build=" mongodb-linux-x86_64-ubuntu2204-${MONGODB} "
18+ elif [[ " $MONGODB " =~ ^(4.4| 5.0) ]]; then
19+ mongodb_build=" mongodb-linux-x86_64-ubuntu2004-${MONGODB} "
2120else
22- echo " Error: Unsupported MongoDB version: ${MONGODB} "
21+ echo >&2 " Error: Unsupported MongoDB version: ${MONGODB} "
2322 usage
2423fi
2524
26- download_url= " http://fastdl.mongodb.org/linux/ ${mongo_build } .tgz"
27- tarball= " ${mongo_build} .tgz "
25+ mongodb_tarball= " ${mongodb_build } .tgz"
26+ mongodb_download_url= " http://fastdl.mongodb.org/linux/ ${mongodb_tarball} "
2827
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 " $mongodb_tarball " " $mongodb_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
3447
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."
3858 exit 1
3959fi
4060
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
4566fi
4667
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 is installed at: ${mongodb_dir} "
75+ mongod >&2 --version
76+
77+ echo >&2 " MongoDB Shell is installed at: ${mongosh_dir} "
78+ mongosh >&2 --version
4979
5080# Cleanup
51- echo " Cleaning up..."
52- rm -f " ${tarball} "
81+ echo >&2 " Cleaning up..."
82+ rm -f " $mongodb_tarball " " $mongosh_tarball "
0 commit comments