adding new CLI Command (--cleanupdelete / -gcd) to cleanup+delete (instead of just moving to /archive) (closes #587)

This commit is contained in:
Raphael Hoegger
2018-08-15 11:48:20 +02:00
committed by Lukas Schauer
parent ea106ef72e
commit 27fd41d75f
+24 -1
View File
@@ -1855,10 +1855,12 @@ command_cleanup() {
load_config load_config
fi fi
if [[ ! "${PARAM_CLEANUPDELETE:-}" = "yes" ]]; then
# Create global archive directory if not existent # Create global archive directory if not existent
if [[ ! -e "${BASEDIR}/archive" ]]; then if [[ ! -e "${BASEDIR}/archive" ]]; then
mkdir "${BASEDIR}/archive" mkdir "${BASEDIR}/archive"
fi fi
fi
# Allow globbing # Allow globbing
[[ -n "${ZSH_VERSION:-}" ]] && set +o noglob || set +f [[ -n "${ZSH_VERSION:-}" ]] && set +o noglob || set +f
@@ -1872,10 +1874,12 @@ command_cleanup() {
certname="$(basename "${certdir}")" certname="$(basename "${certdir}")"
# Create certificates archive directory if not existent # Create certificates archive directory if not existent
if [[ ! "${PARAM_CLEANUPDELETE:-}" = "yes" ]]; then
archivedir="${BASEDIR}/archive/${certname}" archivedir="${BASEDIR}/archive/${certname}"
if [[ ! -e "${archivedir}" ]]; then if [[ ! -e "${archivedir}" ]]; then
mkdir "${archivedir}" mkdir "${archivedir}"
fi fi
fi
# Loop over file-types (certificates, keys, signing-requests, ...) # Loop over file-types (certificates, keys, signing-requests, ...)
for filetype in cert.csr cert.pem chain.pem fullchain.pem privkey.pem ocsp.der; do for filetype in cert.csr cert.pem chain.pem fullchain.pem privkey.pem ocsp.der; do
@@ -1899,10 +1903,16 @@ command_cleanup() {
for file in "${certdir}/${filebase}-"*".${fileext}" "${certdir}/${filebase}-"*".${fileext}-revoked"; do for file in "${certdir}/${filebase}-"*".${fileext}" "${certdir}/${filebase}-"*".${fileext}-revoked"; do
# Check if current file is in use, if unused move to archive directory # Check if current file is in use, if unused move to archive directory
filename="$(basename "${file}")" filename="$(basename "${file}")"
if [[ ! "${filename}" = "${current}" ]]; then if [[ ! "${filename}" = "${current}" ]] && [[ -f "${certdir}/${filename}" ]]; then
echo "${filename}"
if [[ "${PARAM_CLEANUPDELETE:-}" = "yes" ]]; then
echo "Deleting unused file: ${certname}/${filename}"
rm "${certdir}/${filename}"
else
echo "Moving unused file to archive directory: ${certname}/${filename}" echo "Moving unused file to archive directory: ${certname}/${filename}"
mv "${certdir}/${filename}" "${archivedir}/${filename}" mv "${certdir}/${filename}" "${archivedir}/${filename}"
fi fi
fi
done done
done done
done done
@@ -1910,6 +1920,13 @@ command_cleanup() {
exit "${exit_with_errorcode}" exit "${exit_with_errorcode}"
} }
# Usage: --cleanup-delete (-gcd)
# Description: Deletes (!) unused certificate files
command_cleanupdelete() {
command_cleanup
}
# Usage: --help (-h) # Usage: --help (-h)
# Description: Show help text # Description: Show help text
command_help() { command_help() {
@@ -2022,6 +2039,11 @@ main() {
set_command cleanup set_command cleanup
;; ;;
--cleanup-delete|-gcd)
set_command cleanupdelete
PARAM_CLEANUPDELETE="yes"
;;
# PARAM_Usage: --full-chain (-fc) # PARAM_Usage: --full-chain (-fc)
# PARAM_Description: Print full chain when using --signcsr # PARAM_Description: Print full chain when using --signcsr
--full-chain|-fc) --full-chain|-fc)
@@ -2186,6 +2208,7 @@ main() {
deactivate) command_deactivate;; deactivate) command_deactivate;;
cleanup) command_cleanup;; cleanup) command_cleanup;;
terms) command_terms;; terms) command_terms;;
cleanupdelete) command_cleanupdelete;;
version) command_version;; version) command_version;;
*) command_help; exit 1;; *) command_help; exit 1;;
esac esac