diff --git a/scripts/openvpn/removeOVPN.sh b/scripts/openvpn/removeOVPN.sh index 4d9296e..30bfac7 100755 --- a/scripts/openvpn/removeOVPN.sh +++ b/scripts/openvpn/removeOVPN.sh @@ -56,17 +56,23 @@ if [[ -z "${CERTS_TO_REVOKE}" ]]; then STATUS=$(echo "$line" | awk '{print $1}') if [[ "${STATUS}" = "V" ]]; then NAME=$(echo "$line" | sed -e 's:.*/CN=::') - CERTS[$i]=${NAME} if [ "$i" != 0 ]; then # Prevent printing "server" certificate - printf " %s\n" "$NAME" + CERTS[$i]=${NAME} fi let i=i+1 fi done <${INDEX} + + i=1 + len=${#CERTS[@]} + while [ $i -le ${len} ]; do + printf "%0${#len}s) %s\r\n" ${i} ${CERTS[(($i))]} + ((i++)) + done printf "\n" - echo -n "::: Please enter the Name of the client to be revoked from the list above: " + echo -n "::: Please enter the Index/Name of the client to be revoked from the list above: " read -r NAME if [[ -z "${NAME}" ]]; then @@ -74,6 +80,11 @@ if [[ -z "${CERTS_TO_REVOKE}" ]]; then exit 1 fi + re='^[0-9]+$' + if [[ ${NAME} =~ $re ]] ; then + NAME=${CERTS[$(($NAME))]} + fi + for((x=1;x<=i;++x)); do if [ "${CERTS[$x]}" = "${NAME}" ]; then VALID=1 diff --git a/scripts/wireguard/qrcodeCONF.sh b/scripts/wireguard/qrcodeCONF.sh index 0420eb5..6d980fe 100755 --- a/scripts/wireguard/qrcodeCONF.sh +++ b/scripts/wireguard/qrcodeCONF.sh @@ -33,17 +33,18 @@ if [ ! -s clients.txt ]; then exit 1 fi +LIST=($(awk '{print $1}' clients.txt)) if [ "${#CLIENTS_TO_SHOW[@]}" -eq 0 ]; then echo -e "::\e[4m Client list \e[0m::" - LIST=($(awk '{print $1}' clients.txt)) + len=${#LIST[@]} COUNTER=1 - while [ $COUNTER -le ${#LIST[@]} ]; do - echo "• ${LIST[(($COUNTER-1))]}" + while [ $COUNTER -le ${len} ]; do + printf "%0${#len}s) %s\r\n" ${COUNTER} ${LIST[(($COUNTER-1))]} ((COUNTER++)) done - read -r -p "Please enter the Name of the Client to show: " CLIENTS_TO_SHOW + read -r -p "Please enter the Index/Name of the Client to show: " CLIENTS_TO_SHOW if [ -z "${CLIENTS_TO_SHOW}" ]; then echo "::: You can not leave this blank!" @@ -52,6 +53,10 @@ if [ "${#CLIENTS_TO_SHOW[@]}" -eq 0 ]; then fi for CLIENT_NAME in "${CLIENTS_TO_SHOW[@]}"; do + re='^[0-9]+$' + if [[ ${CLIENT_NAME} =~ $re ]] ; then + CLIENT_NAME=${LIST[$(($CLIENT_NAME -1))]} + fi if grep -qw "${CLIENT_NAME}" clients.txt; then echo -e "::: Showing client \e[1m${CLIENT_NAME}\e[0m below" echo "=====================================================================" @@ -60,4 +65,4 @@ for CLIENT_NAME in "${CLIENTS_TO_SHOW[@]}"; do else echo -e "::: \e[1m${CLIENT_NAME}\e[0m does not exist" fi -done \ No newline at end of file +done diff --git a/scripts/wireguard/removeCONF.sh b/scripts/wireguard/removeCONF.sh index 9f62a4d..cbf4dbb 100755 --- a/scripts/wireguard/removeCONF.sh +++ b/scripts/wireguard/removeCONF.sh @@ -46,17 +46,17 @@ if [ ! -s configs/clients.txt ]; then exit 1 fi +LIST=($(awk '{print $1}' configs/clients.txt)) if [ "${#CLIENTS_TO_REMOVE[@]}" -eq 0 ]; then - echo -e "::\e[4m Client list \e[0m::" - LIST=($(awk '{print $1}' configs/clients.txt)) + len=${#LIST[@]} COUNTER=1 - while [ $COUNTER -le ${#LIST[@]} ]; do - echo "• ${LIST[(($COUNTER-1))]}" + while [ $COUNTER -le ${len} ]; do + printf "%0${#len}s) %s\r\n" ${COUNTER} ${LIST[(($COUNTER-1))]} ((COUNTER++)) done - read -r -p "Please enter the Name of the Client to be removed from the list above: " CLIENTS_TO_REMOVE + read -r -p "Please enter the Index/Name of the Client to be removed from the list above: " CLIENTS_TO_REMOVE if [ -z "${CLIENTS_TO_REMOVE}" ]; then echo "::: You can not leave this blank!" @@ -68,6 +68,11 @@ DELETED_COUNT=0 for CLIENT_NAME in "${CLIENTS_TO_REMOVE[@]}"; do + re='^[0-9]+$' + if [[ ${CLIENT_NAME} =~ $re ]] ; then + CLIENT_NAME=${LIST[$(($CLIENT_NAME -1))]} + fi + if ! grep -q "^${CLIENT_NAME} " configs/clients.txt; then echo -e "::: \e[1m${CLIENT_NAME}\e[0m does not exist" else