From: Zoltán Felleg Date: Fri, 28 Mar 2025 14:36:25 +0000 (+0100) Subject: Updated updatecerts.sh (completely reworked it). X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=37b2bed78d4ac831e9617e2617c975a3ba996366;p=user-ssh.git Updated updatecerts.sh (completely reworked it). --- diff --git a/updatecerts.sh b/updatecerts.sh index 8170073..102d03e 100755 --- a/updatecerts.sh +++ b/updatecerts.sh @@ -1,56 +1,31 @@ #!/bin/sh -PROMPT="Please enter quarter for certificates" -PROMPT=${PROMPT}" in the format YYYYq(1|2|3|4): " -read -p "$PROMPT" CERT_YEAR_QUARTER +CERT_YEAR_QUARTER=$(echo $1 | grep '^20[0-9][0-9]q[1-4]$') +if [ -z "$CERT_YEAR_QUARTER" ] +then + echo "Usage: $(basename $0) YYYYq(1|2|3|4)" >&2 + exit 1 +fi CERT_YEAR=$(echo $CERT_YEAR_QUARTER | cut -c 1-4) CERT_QUARTER=$(echo $CERT_YEAR_QUARTER | cut -c 6) -CURRENT_YEAR=$(date "+%Y") -YEAR_DIFF=$(( $CERT_YEAR - $CURRENT_YEAR )) +CERT_START_M=$((($CERT_QUARTER - 1) * 3 + 1)) +printf -v CERT_START_MM "%02d" $CERT_START_M +CERT_END_M=$((($CERT_START_M + 4) % 12)) +printf -v CERT_END_MM "%02d" $CERT_END_M +CERT_START_YYYYMMDD="${CERT_YEAR}${CERT_START_MM}01" +if [ $CERT_END_M -lt $CERT_START_M ] +then + CERT_YEAR=$(($CERT_YEAR + 1)) +fi +CERT_END_YYYYMMDD="${CERT_YEAR}${CERT_END_MM}01" -case "$YEAR_DIFF" in - "0" | "1") - ;; - *) - echo "Invalid year ($CERT_YEAR) given, exiting." >&2 - exit 1 - ;; -esac - -case "$CERT_QUARTER" in - "1") - # jan 1 - apr 30 - CERT_START_YYYYMMDD="${CERT_YEAR}0101" - CERT_END_YYYYMMDD="${CERT_YEAR}0501" - ;; - "2") - # apr 1 - jul 31 - CERT_START_YYYYMMDD="${CERT_YEAR}0401" - CERT_END_YYYYMMDD="${CERT_YEAR}0801" - ;; - "3") - # jul 1 - oct 31 - CERT_START_YYYYMMDD="${CERT_YEAR}0701" - CERT_END_YYYYMMDD="${CERT_YEAR}1101" - ;; - "4") - # oct 1 - jan 31 (of next year) - CERT_START_YYYYMMDD="${CERT_YEAR}1001" - CERT_YEAR=$(( $CERT_YEAR + 1 )) - CERT_END_YYYYMMDD="${CERT_YEAR}0201" - ;; - *) - echo "Invalid quarter ($CERT_QUARTER) given, exiting." >&2 - exit 1 - ;; -esac - -for CERT_NAME in fritter mszabo scripts zfelleg +# CAP: certificate and principal +ls *-cert.pub | sed 's/-cert.pub$//' | while read CAP_NAME do - ssh-keygen -I ${CERT_NAME}-$CERT_YEAR_QUARTER \ - -n "$CERT_NAME" \ + ssh-keygen -I ${CAP_NAME}-$CERT_YEAR_QUARTER \ + -n $CAP_NAME \ -s user-CA \ -V ${CERT_START_YYYYMMDD}:$CERT_END_YYYYMMDD \ - ${CERT_NAME}.pub + ${CAP_NAME}.pub done