superlint/lib/functions/updateSSL.sh
Marco Ferrari 0967cd29d0
feat: enable shell error checks (#5126)
Enable error checks to:

- Exit on errors
- Disallow empty variables
- Fail when a piped command errors
2024-02-20 19:05:39 +00:00

39 lines
1.1 KiB
Bash
Executable file

#!/usr/bin/env bash
function CheckSSLCert() {
if [ -z "${SSL_CERT_SECRET:-}" ]; then
# No cert was passed
debug "User did not provide a SSL_CERT_SECRET"
else
# User has provided a cert file to upload
debug "User configured a SSL_CERT_SECRET"
InstallSSLCert
fi
}
function InstallSSLCert() {
local CERT_FILE
CERT_FILE='/tmp/cert.crt'
local CERT_ROOT
CERT_ROOT='/usr/local/share/ca-certificates'
local FILE_NAME
FILE_NAME=$(basename "${CERT_FILE}" 2>&1)
echo "${SSL_CERT_SECRET}" >>"${CERT_FILE}"
local CERT_DESTINATION
CERT_DESTINATION="${CERT_ROOT}/${FILE_NAME}"
info "Moving certificate to ${CERT_DESTINATION}"
local COPY_CMD
if ! COPY_CMD=$(mv -v "${CERT_FILE}" "${CERT_DESTINATION}" 2>&1); then
fatal "Failed to move cert to ${CERT_DESTINATION}. Output: ${COPY_CMD}"
fi
debug "Move certificate output: ${COPY_CMD}"
info "Update cert store to consider the new certificate"
local UPDATE_CMD
if ! UPDATE_CMD=$(update-ca-certificates 2>&1); then
fatal "Failed to add the certificate to the trust store. Output: ${UPDATE_CMD}"
fi
debug "Cert store update output: ${UPDATE_CMD}"
}