Updated updatecerts.sh (completely reworked it).
authorZoltán Felleg <zoltan.felleg@userrendszerhaz.hu>
Fri, 28 Mar 2025 14:36:25 +0000 (15:36 +0100)
committerZoltán Felleg <zoltan.felleg@userrendszerhaz.hu>
Fri, 28 Mar 2025 14:36:25 +0000 (15:36 +0100)
updatecerts.sh

index 81700734bba6901f83f7b2113c6d57a12115b579..102d03e0f125d575f8ed5429ac75f00fdc75c751 100755 (executable)
@@ -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