#!/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