From 2b203bd0c11828a187fa2e884f8e4348723a1c0a Mon Sep 17 00:00:00 2001 From: Christoph Date: Wed, 7 Mar 2018 13:38:50 +0100 Subject: [PATCH] get_revoked_keys.sh: support of multiple OpenVPN installations added. --- get_revoked_keys.sh | 85 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 81 insertions(+), 4 deletions(-) diff --git a/get_revoked_keys.sh b/get_revoked_keys.sh index 756708f..8bac05d 100755 --- a/get_revoked_keys.sh +++ b/get_revoked_keys.sh @@ -22,6 +22,31 @@ trim() { echo -n "$var" } + +is_number() { + + return $(test ! -z "${1##*[!0-9]*}" > /dev/null 2>&1); + + # - also possible + # - + #[[ ! -z "${1##*[!0-9]*}" ]] && return 0 || return 1 + #return $([[ ! -z "${1##*[!0-9]*}" ]]) +} + +is_int() { + return $(test "$@" -eq "$@" > /dev/null 2>&1); +} + +echononl(){ + echo X\\c > /tmp/shprompt$$ + if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then + echo -e -n "$*\\c" 1>&2 + else + echo -e -n "$*" 1>&2 + fi + rm /tmp/shprompt$$ +} + fatal(){ echo "" if $terminal ; then @@ -84,10 +109,62 @@ fi # --- Read Configurations from $conf_file # ------------- +declare -a conf_file_arr=() +declare -a conf_name_arr=() +for _conf_file in `ls ${working_dir}/conf/server-*.conf 2>/dev/null` ; do + conf_file_arr+=("${_conf_file}") + _basename=$(basename $_conf_file) + _tmp_name=${_basename%%.*} + _tmp_name=${_tmp_name#*-} + conf_name_arr+=("$_tmp_name") +done + +if [[ ${#conf_file_arr[@]} -lt 1 ]] ; then + fatal "NO Configuration found!" +fi + + +echo "" + +declare -i i=0 + +if [[ ${#conf_file_arr[@]} -gt 1 ]] ; then + echo "" + echo "Which Configuration should be loaded?" + echo "" + for _conf_file in ${conf_file_arr[@]} ; do + echo " [${i}] ${conf_name_arr[${i}]}" + (( i++ )) + done + _OK=false + echo + echononl "Eingabe: " + while ! $_OK ; do + read _IN + if is_number "$_IN" && [[ -n ${conf_file_arr[$_IN]} ]]; then + conf_file=${conf_file_arr[$_IN]} + service_name="${conf_name_arr[$_IN]}" + _OK=true + else + echo "" + echo -e "\tFalsche Eingabe !" + echo "" + echononl "Eingabe: " + fi + done + +else + conf_file=${conf_file_arr[0]} +fi + +echo "" +echo -e "\033[32m--\033[m" +echo "" + if [[ -f "$conf_file" ]] ; then source "$conf_file" else - warn "No configuration file 'conf_file' not found.\n Loading defaults.." + warn "No configuration file 'conf_file' for OpenVON Service '$service_name' found.\n Loading defaults.." fi @@ -122,16 +199,16 @@ if [[ ${#revoked_serial_arr[@]} -gt 0 ]]; then fi done else - info "No revoked OpenVPN keys in \033[1m${KEY_DIR}\033[m exists" + info "No revoked keys in \033[1m${KEY_DIR}\033[m for OpenVPN service \033[1m$service_name\033[m exists." fi echo if [[ ${#revoked_cn_arr[@]} -gt 0 ]]; then echo "" if $terminal ; then - echo -e "Revoked Keys in \033[32m\033[1m${KEY_DIR}\033[m:" + echo -e "Revoked Keys for OpenVPN service \033[1m$service_name\033[m in \033[32m\033[1m${KEY_DIR}\033[m:" else - echo "Revoked Keys in ${KEY_DIR}:" + echo "Revoked Keys for OpenVPN service '$service_name' in '${KEY_DIR}':" fi echo "" for _val in ${revoked_cn_arr[@]} ; do