mirror of
https://github.com/pivpn/pivpn.git
synced 2024-12-18 19:00:15 +00:00
71f7ca9b3b
Fix #1636 Refactor code according to code style Constants, Functions, Script
56 lines
1.4 KiB
Bash
Executable file
56 lines
1.4 KiB
Bash
Executable file
#!/bin/bash
|
|
# PiVPN: list clients script
|
|
# Updated Script to include Expiration Dates and
|
|
# Clean up Escape Seq -- psgoundar
|
|
|
|
INDEX="/etc/openvpn/easy-rsa/pki/index.txt"
|
|
EASYRSA="/etc/openvpn/easy-rsa/easyrsa"
|
|
|
|
err() {
|
|
echo "[$(date +'%Y-%m-%dT%H:%M:%S%z')]: $*" >&2
|
|
}
|
|
|
|
if [[ ! -f "${INDEX}" ]]; then
|
|
err "The file: ${INDEX} was not found!"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -f "${EASYRSA}" ]]; then
|
|
err "The file: ${EASYRSA} was not found!"
|
|
exit 1
|
|
fi
|
|
|
|
"${EASYRSA}" update-db >> /dev/null 2>&1
|
|
|
|
printf ": NOTE : The first entry is your server, "
|
|
printf "which should always be valid!\n"
|
|
printf "\\n"
|
|
printf "\\e[1m::: Certificate Status List :::\\e[0m\\n"
|
|
|
|
{
|
|
printf "\\e[4mStatus\\e[0m \t \\e[4mName\\e[0m\\e[0m \t "
|
|
printf "\\e[4mExpiration\\e[0m\\n"
|
|
|
|
while read -r line || [[ -n "${line}" ]]; do
|
|
STATUS="$(echo "${line}" | awk '{print $1}')"
|
|
NAME="$(echo "${line}" | awk -FCN= '{print $2}')"
|
|
EXPD="$(echo "${line}" \
|
|
| awk '{if (length($2) == 15) print $2; else print "20"$2}' \
|
|
| cut -b 1-8 \
|
|
| date +"%b %d %Y" -f -)"
|
|
|
|
if [[ "${STATUS}" == "V" ]]; then
|
|
printf "Valid"
|
|
elif [[ "${STATUS}" == "R" ]]; then
|
|
printf "Revoked"
|
|
elif [[ "${STATUS}" == "E" ]]; then
|
|
printf "Expired"
|
|
else
|
|
printf "Unknown"
|
|
fi
|
|
|
|
printf " \t %s \t %s\\n" "$(echo -e "${NAME}")" "${EXPD}"
|
|
done < "${INDEX}"
|
|
|
|
printf "\\n"
|
|
} | column -t -s $'\t'
|