Add client export option

- Add an option to export configuration for an existing client.
This commit is contained in:
hwdsl2 2022-09-02 23:24:10 -05:00
parent e58d72b585
commit 3994091cb5

View File

@ -538,11 +538,12 @@ else
echo
echo "Select an option:"
echo " 1) Add a new client"
echo " 2) Revoke an existing client"
echo " 3) Remove OpenVPN"
echo " 4) Exit"
echo " 2) Export configuration for an existing client"
echo " 3) Revoke an existing client"
echo " 4) Remove OpenVPN"
echo " 5) Exit"
read -p "Option: " option
until [[ "$option" =~ ^[1-4]$ ]]; do
until [[ "$option" =~ ^[1-5]$ ]]; do
echo "$option: invalid selection."
read -p "Option: " option
done
@ -569,6 +570,27 @@ else
exit
;;
2)
number_of_clients=$(tail -n +2 /etc/openvpn/server/easy-rsa/pki/index.txt | grep -c "^V")
if [[ "$number_of_clients" = 0 ]]; then
echo
echo "There are no existing clients!"
exit
fi
echo
echo "Select the client to export:"
tail -n +2 /etc/openvpn/server/easy-rsa/pki/index.txt | grep "^V" | cut -d '=' -f 2 | nl -s ') '
read -p "Client: " client_number
until [[ "$client_number" =~ ^[0-9]+$ && "$client_number" -le "$number_of_clients" ]]; do
echo "$client_number: invalid selection."
read -p "Client: " client_number
done
client=$(tail -n +2 /etc/openvpn/server/easy-rsa/pki/index.txt | grep "^V" | cut -d '=' -f 2 | sed -n "$client_number"p)
new_client
echo
echo "$client exported. Configuration available in: $export_dir$client.ovpn"
exit
;;
3)
# This option could be documented a bit better and maybe even be simplified
# ...but what can I say, I want some sleep too
number_of_clients=$(tail -n +2 /etc/openvpn/server/easy-rsa/pki/index.txt | grep -c "^V")
@ -611,7 +633,7 @@ else
fi
exit
;;
3)
4)
echo
read -p "Confirm OpenVPN removal? [y/N]: " remove
until [[ "$remove" =~ ^[yYnN]*$ ]]; do
@ -671,7 +693,7 @@ else
fi
exit
;;
4)
5)
exit
;;
esac