85 lines
2.7 KiB
Bash
Executable File
85 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Logs messages to STDOUT using the same message severities as described in RFC 5424 in 6.2.1
|
|
# Table 2: Syslog Message Severities - https://datatracker.ietf.org/doc/html/rfc5424#section-6.2.1
|
|
function log(){
|
|
local log_lvl="${1}"
|
|
local msg="${2}"
|
|
|
|
case ${log_lvl} in
|
|
0)
|
|
printf "%s\n" "[$(tput setaf 1)$(tput bold)emergency$(tput sgr0)] ${msg}"
|
|
;;
|
|
1)
|
|
printf "%s\n" "[$(tput setaf 1)$(tput bold)alert$(tput sgr0)] ${msg}"
|
|
;;
|
|
2)
|
|
printf "%s\n" "[$(tput setaf 1)$(tput bold)critical$(tput sgr0)] ${msg}"
|
|
;;
|
|
3)
|
|
printf "%s\n" "[$(tput setaf 1)$(tput bold)error$(tput sgr0)] ${msg}"
|
|
;;
|
|
4)
|
|
printf "%s\n" "[$(tput setaf 3)$(tput bold)warning$(tput sgr0)] ${msg}"
|
|
;;
|
|
5)
|
|
printf "%s\n" "[$(tput setaf 2)$(tput bold)notice$(tput sgr0)] ${msg}"
|
|
;;
|
|
6)
|
|
printf "%s\n" "[$(tput setaf 2)$(tput bold)info$(tput sgr0)] ${msg}"
|
|
;;
|
|
7)
|
|
printf "%s\n" "[$(tput setaf 5)$(tput bold)debug$(tput sgr0)] ${msg}"
|
|
;;
|
|
*)
|
|
printf "%s\n" "${@}"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
BIN_INSTALL_DIR="/usr/local/bin"
|
|
|
|
log 6 "Querying Github API for latest git-cliff release download URL..."
|
|
RELEASE_TAR_DOWNLOAD_URL="$(curl -s https://api.github.com/repos/orhun/git-cliff/releases/latest \
|
|
| tr -d \" \
|
|
| awk -F" " '/.*-x86_64-unknown-linux-gnu.tar.gz$/ && /browser_download_url/ {print $2}')"
|
|
|
|
RELEASE_TAR_FILENAME="$(echo "${RELEASE_TAR_DOWNLOAD_URL}" | awk -F'/' '{print $9}')"
|
|
EXTRACTED_TAR_DIR_NAME="$(echo "${RELEASE_TAR_FILENAME}" | awk -F'-x86_64' '{print $1}')"
|
|
|
|
if [[ -n "${RELEASE_TAR_DOWNLOAD_URL}" && -n "${RELEASE_TAR_FILENAME}" ]]; then
|
|
CHECKSUM_DOWNLOAD_URL="${RELEASE_TAR_DOWNLOAD_URL}.sha512"
|
|
CHECKSUM_FILENAME="${RELEASE_TAR_FILENAME}.sha512"
|
|
else
|
|
log 3 "Could not get latest git-cliff release download URL"
|
|
exit 1
|
|
fi
|
|
|
|
log 6 "Downloading git-cliff latest binary release for x86_64"
|
|
if ! wget "${RELEASE_TAR_DOWNLOAD_URL}"; then
|
|
log 3 "Could not download git-cliff"
|
|
fi
|
|
|
|
log 6 "Downloading git-cliff SHA512 checksum for ${RELEASE_TAR_FILENAME}"
|
|
if ! wget "${CHECKSUM_DOWNLOAD_URL}"; then
|
|
log 3 "Could not download git-cliff checksum"
|
|
fi
|
|
|
|
log 6 "Verifying checksum"
|
|
if ! sha512sum -c "${CHECKSUM_FILENAME}"; then
|
|
log 3 "The downloaded tar archive is corrupted"
|
|
exit 1
|
|
fi
|
|
rm -f "${CHECKSUM_FILENAME}"
|
|
|
|
log 6 "Extracting ${PWD}/${RELEASE_TAR_FILENAME}"
|
|
if ! tar -xvf "${RELEASE_TAR_FILENAME}"; then
|
|
log 3 "Failed to extract ${PWD}/${RELEASE_TAR_FILENAME}"
|
|
exit 1
|
|
fi
|
|
|
|
log 6 "Copying binary ${EXTRACTED_TAR_DIR_NAME}/git-cliff to ${BIN_INSTALL_DIR}"
|
|
if ! cp "${EXTRACTED_TAR_DIR_NAME}/git-cliff" "${BIN_INSTALL_DIR}"; then
|
|
log 3 "Failed to copy git-cliff to ${BIN_INSTALL_DIR}"
|
|
fi
|