From 83d0ef24498972fc4e4b0af7209673029740bd4d Mon Sep 17 00:00:00 2001 From: Jeremy Lecour Date: Mon, 12 Oct 2020 23:38:32 +0200 Subject: [PATCH] "shellpki revoke" can be run interactively or not --- shellpki | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/shellpki b/shellpki index d7d966a..89304e6 100755 --- a/shellpki +++ b/shellpki @@ -688,15 +688,42 @@ EOF } revoke() { - if [ "${1}" = "" ]; then + non_interactive=0 + + # Parse options + # based on https://gist.github.com/deshion/10d3cb5f88a21671e17a + while :; do + case $1 in + --non-interactive) + non_interactive=1 + ;; + --) + # End of all options. + shift + break + ;; + -?*) + # ignore unknown options + warning "Warning: unknown option (ignored): \`$1'" + ;; + *) + # Default case: If no more options then break out of the loop. + break + ;; + esac + + shift + done + + # The name of the certificate + cn="${1:-}" + + if [ -z "${cn}" ]; then show_usage >&2 exit 1 fi + crt_file="${CRT_DIR}/${cn}.crt" - - # get CN from param - cn="${1}" - # check if CRT exists if [ ! -f "${crt_file}" ]; then error "Unknow CN : ${cn} (\`${crt_file}' not found)"