-
Notifications
You must be signed in to change notification settings - Fork 0
/
crunchy-cli.sh
30 lines (23 loc) · 1.04 KB
/
crunchy-cli.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
#!/bin/bash
executable_name="crunchy-cli"
executable_path="/usr/bin/$executable_name"
executable_exists=$(command -v "$executable_name" >/dev/null 2>&1 && echo true || echo false)
if [ "$executable_exists" ]; then
executable_version=$($executable_name --version)
fi
# get latest release tag from Github
latest_release_api="https://api.github.com/repos/crunchy-labs/crunchy-cli/releases/latest"
latest_release_tag=$(curl --silent "$latest_release_api" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
if [ "$executable_exists" ]; then
if [[ "$executable_version//v/" == *"${latest_release_tag//v/}"* ]]; then
echo "Latest Version is already installed."
exit 1
fi
# Move old version in users home dir
mv "/usr/bin/crunchy-cli" "$HOME/crunchy-cli-$executable_version"
fi
arch="linux-$(uname -m)"
# Get new Version from github and make it executable
wget -O "$executable_path" "https://github.com/crunchy-labs/crunchy-cli/releases/download/$latest_release_tag/$executable_name-$latest_release_tag-$arch"
chmod +x "$executable_path"
exit 0