mirror of
https://github.com/axllent/mailpit.git
synced 2024-12-24 22:14:33 +02:00
99 lines
1.9 KiB
Bash
99 lines
1.9 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
GH_REPO="axllent/mailpit"
|
|
TIMEOUT=90
|
|
|
|
set -e
|
|
|
|
VERSION=$(curl --silent --location --max-time "${TIMEOUT}" "https://api.github.com/repos/${GH_REPO}/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
|
if [ $? -ne 0 ]; then
|
|
echo -ne "\nThere was an error trying to check what is the latest version of Mailpit.\nPlease try again later.\n"
|
|
exit 1
|
|
fi
|
|
|
|
# detect the platform
|
|
OS="$(uname)"
|
|
case $OS in
|
|
Linux)
|
|
OS='linux'
|
|
;;
|
|
FreeBSD)
|
|
OS='freebsd'
|
|
echo 'OS not supported'
|
|
exit 2
|
|
;;
|
|
NetBSD)
|
|
OS='netbsd'
|
|
echo 'OS not supported'
|
|
exit 2
|
|
;;
|
|
OpenBSD)
|
|
OS='openbsd'
|
|
echo 'OS not supported'
|
|
exit 2
|
|
;;
|
|
Darwin)
|
|
OS='darwin'
|
|
;;
|
|
SunOS)
|
|
OS='solaris'
|
|
echo 'OS not supported'
|
|
exit 2
|
|
;;
|
|
*)
|
|
echo 'OS not supported'
|
|
exit 2
|
|
;;
|
|
esac
|
|
|
|
# detect the arch
|
|
OS_type="$(uname -m)"
|
|
case "$OS_type" in
|
|
x86_64 | amd64)
|
|
OS_type='amd64'
|
|
;;
|
|
i?86 | x86)
|
|
OS_type='386'
|
|
;;
|
|
aarch64 | arm64)
|
|
OS_type='arm64'
|
|
;;
|
|
*)
|
|
echo 'OS type not supported'
|
|
exit 2
|
|
;;
|
|
esac
|
|
|
|
GH_REPO_BIN="mailpit-${OS}-${OS_type}.tar.gz"
|
|
|
|
#create tmp directory and move to it with macOS compatibility fallback
|
|
tmp_dir=$(mktemp -d 2>/dev/null || mktemp -d -t 'mailpit-install.XXXXXXXXXX')
|
|
cd "$tmp_dir"
|
|
|
|
echo "Downloading Mailpit $VERSION"
|
|
LINK="https://github.com/${GH_REPO}/releases/download/${VERSION}/${GH_REPO_BIN}"
|
|
|
|
curl --silent --location --max-time "${TIMEOUT}" "${LINK}" | tar zxf - || {
|
|
echo "Error downloading"
|
|
exit 2
|
|
}
|
|
|
|
mkdir -p /usr/local/bin || exit 2
|
|
cp mailpit /usr/local/bin/ || exit 2
|
|
chmod 755 /usr/local/bin/mailpit || exit 2
|
|
case "$OS" in
|
|
'linux')
|
|
chown root:root /usr/local/bin/mailpit || exit 2
|
|
;;
|
|
'freebsd' | 'openbsd' | 'netbsd' | 'darwin')
|
|
chown root:wheel /usr/local/bin/mailpit || exit 2
|
|
;;
|
|
*)
|
|
echo 'OS not supported'
|
|
exit 2
|
|
;;
|
|
esac
|
|
|
|
rm -rf "$tmp_dir"
|
|
echo "Installed successfully to /usr/local/bin/mailpit"
|