/
update-mdb.sh
executable file
·91 lines (80 loc) · 4.32 KB
/
update-mdb.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
#!/usr/bin/env bash
INSTALL_FOLDER="/home/polux/Softwares"
LINUX="debian11"
SITE_ENTERPRISE=$(wget -qO- https://www.mongodb.com/try/download/enterprise | tr -d '\n')
SITE_TOOLS=$(wget -qO- https://www.mongodb.com/try/download/tools | tr -d '\n')
COMPASS_VERSIONS=$(curl -sH "Accept: application/vnd.github.v3+json" https://api.github.com/repos/mongodb-js/compass/releases)
CURRENT_MDB_COMPASS=$(dpkg -l | grep "mongodb-compass " | tr -s ' ' '\t' | cut -f3)
CURRENT_MDB_COMPASS_BETA=$(dpkg -l | grep "mongodb-compass-beta " | tr -s ' ' '\t' | cut -f3 | sed 's/~/-/')
CURRENT_MONGOSH=$(mongosh --version)
CURRENT_MONGODB=$(readlink $INSTALL_FOLDER/mongodb-linux-current | grep -oP '\d+\.\d+\.\d+')
CURRENT_TOOLS=$(readlink $INSTALL_FOLDER/mongodb-tools-current | grep -oP '\d+\.\d+\.\d+')
CURRENT_MDB_COMPASS=${CURRENT_MDB_COMPASS:-'0.0.0'}
CURRENT_MDB_COMPASS_BETA=${CURRENT_MDB_COMPASS_BETA:-'0.0.0'}
CURRENT_MONGOSH=${CURRENT_MONGOSH:-'0.0.0'}
CURRENT_MONGODB=${CURRENT_MONGODB:-'0.0.0'}
CURRENT_TOOLS=${CURRENT_TOOLS:-'0.0.0'}
COMPASS_URL_PROD=$(echo "$COMPASS_VERSIONS" | grep "browser_download_url.*_amd64\.deb" | cut -d'"' -f4 | grep -v "isolated\|readonly\|community\|beta" | head -1)
COMPASS_URL_BETA=$(echo "$COMPASS_VERSIONS" | grep "browser_download_url.*_amd64\.deb" | cut -d'"' -f4 | grep -v "isolated\|readonly\|community" | grep beta | head -1)
COMPASS_PROD_DEB=$(echo "$COMPASS_URL_PROD" | xargs basename)
COMPASS_BETA_DEB=$(echo "$COMPASS_URL_BETA" | xargs basename)
ONLINE_COMPASS_PROD=$(echo "$COMPASS_URL_PROD" | grep -oP '\d+\.\d+\.\d+' | head -1)
ONLINE_COMPASS_BETA=$(echo "$COMPASS_URL_BETA" | grep -oP '\d+\.\d+\.\d+-beta\.\d+' | head -1)
ONLINE_MONGOSH=$(echo "$SITE_TOOLS" | grep -oP '<div id="shell".*?</button>' | grep -oP '\d+\.\d+\.\d+')
ONLINE_MONGODB=$(echo "$SITE_ENTERPRISE" | grep -oP '<div id="server".*?</button>' | grep -oP '\d+\.\d+\.\d+')
ONLINE_TOOLS=$(echo "$SITE_TOOLS" | grep -oP '<div id="db-tools".*?</button>' | grep -oP '\d+\.\d+\.\d+')
BOOL_UPDATE_MDB_COMPASS=$([ "$CURRENT_MDB_COMPASS" == "$ONLINE_COMPASS_PROD" ] && echo "No" || echo "Yes")
BOOL_UPDATE_MDB_COMPASS_BETA=$([ "$CURRENT_MDB_COMPASS_BETA" == "$ONLINE_COMPASS_BETA" ] && echo "No" || echo "Yes")
BOOL_UPDATE_MONGOSH=$([ "$CURRENT_MONGOSH" == "$ONLINE_MONGOSH" ] && echo "No" || echo "Yes")
BOOL_UPDATE_MONGODB=$([ "$CURRENT_MONGODB" == "$ONLINE_MONGODB" ] && echo "No" || echo "Yes")
BOOL_UPDATE_TOOLS=$([ "$CURRENT_TOOLS" == "$ONLINE_TOOLS" ] && echo "No" || echo "Yes")
ARRAY=$(
cat <<-EOF
|,Product,|,Local versions,|,Online versions,|,Need update?,|
|,____________,|,______________,|,_______________,|,____________,|
|,Compass,|,$CURRENT_MDB_COMPASS,|,$ONLINE_COMPASS_PROD,|,$BOOL_UPDATE_MDB_COMPASS,|
|,Compass Beta,|,$CURRENT_MDB_COMPASS_BETA,|,$ONLINE_COMPASS_BETA,|,$BOOL_UPDATE_MDB_COMPASS_BETA,|
|,Mongosh,|,$CURRENT_MONGOSH,|,$ONLINE_MONGOSH,|,$BOOL_UPDATE_MONGOSH,|
|,MongoDB,|,$CURRENT_MONGODB,|,$ONLINE_MONGODB,|,$BOOL_UPDATE_MONGODB,|
|,Tools,|,$CURRENT_TOOLS,|,$ONLINE_TOOLS,|,$BOOL_UPDATE_TOOLS,|
EOF
)
echo "$ARRAY" | column -s ',' -t
if [ "$BOOL_UPDATE_MDB_COMPASS" == "No" ] &&
[ "$BOOL_UPDATE_MDB_COMPASS_BETA" == "No" ] &&
[ "$BOOL_UPDATE_MONGOSH" == "No" ] &&
[ "$BOOL_UPDATE_MONGODB" == "No" ] &&
[ "$BOOL_UPDATE_TOOLS" == "No" ]; then
exit 0
fi
echo
read -p "Do updates [y/n]? " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
if [ "$BOOL_UPDATE_MDB_COMPASS" == "Yes" ]; then
echo "Downloading Compass Prod version: $COMPASS_URL_PROD"
wget -q "$COMPASS_URL_PROD"
sudo dpkg -i "$COMPASS_PROD_DEB"
rm ./*.deb
fi
if [ "$BOOL_UPDATE_MDB_COMPASS_BETA" == "Yes" ]; then
echo "Downloading Compass Beta version: $COMPASS_URL_BETA"
wget -q "$COMPASS_URL_BETA"
sudo dpkg -i "$COMPASS_BETA_DEB"
rm ./*.deb
fi
if [ "$BOOL_UPDATE_MONGOSH" == "Yes" ]; then
wget -qO- "https://downloads.mongodb.com/compass/mongosh-${ONLINE_MONGOSH}-linux-x64.tgz" |
tar -xvz -C $INSTALL_FOLDER/bin/ --strip 2
fi
if [ "$BOOL_UPDATE_MONGODB" == "Yes" ]; then
wget -qO- "https://downloads.mongodb.com/linux/mongodb-linux-x86_64-enterprise-${LINUX}-${ONLINE_MONGODB}.tgz" |
tar -xvz -C $INSTALL_FOLDER
fi
if [ "$BOOL_UPDATE_TOOLS" == "Yes" ]; then
wget -qO- "https://fastdl.mongodb.org/tools/db/mongodb-database-tools-${LINUX}-x86_64-${ONLINE_TOOLS}.tgz" |
tar -xvz -C $INSTALL_FOLDER
fi
else
echo "Okay bye :'( !"
fi