UUGRN Stammtisch.sh

Aus UUGRN
Wechseln zu: Navigation, Suche

Dieses Script ermittelt die Stammtischtermine und UUGRN:FIXME Treffen und gibt passenden SQL-Code für die Kalender-Tabelle aus.

Script[Bearbeiten]

#! /bin/sh

YEAR=${1:-$(date +%Y)}
test "${YEAR}" -gt 2000 -a "${YEAR}" -lt 2038 || YEAR="$(date +%Y)"

for MONTH in $(gseq -w 01 12); do for DAY in $(gseq -w 01 31);  do
    gdate "+%u|%d|%F" --date "${YEAR}-${MONTH}-${DAY}" 2>/dev/null
done; done |
while IFS='|' read DOW DOM DATE; do
  case ${DOM} in
    01|02|03|04|05|06|07) NIM=1 ;;
    08|09|10|11|12|13|14) NIM=2 ;;
    15|16|17|18|19|20|21) NIM=3 ;;
    22|23|24|25|26|27|28) NIM=4 ;;
    29|30|31) NIM=5 ;;
    *) NIM="0" ;;
  esac

  SQL="insert into KALENDER set ID=0"
  SQL2=""
  case ${NIM}-${DOW} in
    1-5) # 1. Freitag
      SQL2=", DATUM='${DATE} 20:00:00', ORT_ID=11, TEXT='FIXME', EVENT_LINK='http://fixme.uugrn.org/'"
      ;;
    3-1) # 3. Montag
      SQL2=", DATUM='${DATE} 20:00:00', ORT_ID=12, TEXT='UnixStammtisch', EVENT_LINK='http://stammtisch.uugrn.org/'"
      ;;
  esac

  if [ -n "${SQL2}" ]; then
    echo "${SQL}${SQL2};"
  fi
done

Variablen[Bearbeiten]

YEAR,MONTH,DAY
Iteriert über alle Kalendertage des angegebenen Jahres
DOW
day-of-week [1..7], 1=Montag
DOM
day-of-month [1..31]
NIM
Nth-in-month [1..5]