X-Git-Url: https://git.plutz.net/?p=confetti;a=blobdiff_plain;f=actions%2Fgenerate_courselist.sh;fp=actions%2Fgenerate_courselist.sh;h=0000000000000000000000000000000000000000;hp=d777536814fed736064ab1da44bfe909ec7741d3;hb=76c1e7bff1a8604ef2ef7da5d274d0db0e639139;hpb=90288ab07bb1ec83a91581fadc674a87a250a853 diff --git a/actions/generate_courselist.sh b/actions/generate_courselist.sh deleted file mode 100755 index d777536..0000000 --- a/actions/generate_courselist.sh +++ /dev/null @@ -1,109 +0,0 @@ -#!/bin/zsh - -# Copyright 2014, 2016, 2017 Paul Hänsch -# -# This file is part of Confetti. -# -# Confetti is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Confetti is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with Confetti. If not, see . - -pdflatex="$(where pdflatex |head -n1 || echo false)" -course="${_GET[course]}" -fromdate="${_GET[fromdate]}" -fromdate="$(date -d "$fromdate" +%s)" 2>/dev/null -[ -z "$fromdate" ] && fromdate=$(date +%s) - -. ${_EXEC}/pages/courses.sh -. ${_EXEC}/pages/cards.sh - -tex_clean() { #in dire need for improvement - printf %s "$*" |tr -d '{&}\\"' -} - - -list_attendee() { #Parameter: Cardfile - id="$1" - cardfile="$_DATA/vcard/${id}" - - declare -A values - - if [ -r "$cardfile" ]; then - vcf_parse "$cardfile" - - n=$(printf %s "$values[N]" \ - | sed -rn 's:^([^;]*)(;[^;]*)(;[^;]*)?(;[^;]*)?(;[^;]*)?$:\4 \2 \3 \1 \5:gp' \ - | sed -r 's:,: :;s:;: :g;s: +: :g;s:^ $::;' - ) - fullname="${n:-${values[FN]:-${values[NICKNAME]}}}" - - tel='' - for n in TEL TEL{0..10}; do if (echo "$values[$n]" |grep -Eq '[0-9]'); then - [ -n "$tel" ] && tel="$tel\\newline $(tex_clean "$values[$n]")" || tel="$(tex_clean "$values[$n]")" - fi; done - - note='' - for n in NOTE NOTE{0..10}; do if [ -n "$values[$n]" ]; then - [ -n "$note" ] && note="$note\\newline $(tex_clean "$values[$n]")" || note="$(tex_clean "$values[$n]")" - fi; done - printf '%s & %s & %s & %s\n' \ - "$(tex_clean $fullname)" "$(tex_clean $values[BDAY])" "$tel" "$note" \ - | sed -r ':X;N;$!bX; s;\n;\\newline ;g' - fi -} - -get_dates() { #Parameter: Calendarfile - calendarfile="$_DATA/ical/$course" - - declare -A values - ics_parse "$calendarfile" - - dtstart="$values[DTSTART]" - [ -z "$dtstart" ] && dtstart=$(date +%Y%m%dT%H%M%S) - echo "$dtstart" |case "$dtstart" in - *Z) sed -rn 's:^([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2})([0-9]{2})([0-9]{2})Z$:\1-\2-\3 \4\:\5\:\6 UTC:p';; - TZID*) sed -rn 's:^TZID=(.+)\:([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2})([0-9]{2})([0-9]{2})$:TZ="\1" \2-\3-\4 \5\:\6\:\7:p';; - *) sed -rn 's:^([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2})([0-9]{2})([0-9]{2})$:\1-\2-\3 \4\:\5\:\6:p';; - esac |read dts_date - rrule="$values[RRULE]" - rr_int="$(echo $rrule |sed -rn 's:^.*INTERVAL=([0-9]+)(;.*)?$:\1:p')" - rr_freq="$(echo $rrule |sed -rn 's:^.*FREQ=(YEARLY|MONTHLY|WEEKLY|DAILY)(;.*)?$:\1:p')" - case "$rr_freq" in - YEARLY) rec="$rr_int year";; - MONTHLY) rec="$rr_int month";; - DAILY) rec="$rr_int day";; - *) rec="$rr_int week";; - esac - - next_date="$dts_date" - n=10 - while [ $n -gt 0 ]; do - if [ "$(date -d "$next_date" +%s)" -gt "$(date +%s)" ]; then - dtlist="$dtlist & $(date -d "$next_date" +"%d. %b.")" - n=$(($n - 1)) - fi - next_date="$(date -d "$next_date + $rec" +%Y-%m-%d)" - done - - echo "$dtlist" -} - -if [ -r "${_DATA}/ical/${course}" ]; then - . ${_EXEC}/templates/course_print.sh >"${_DATA}/temp/courselist_${course}.tex" - [ -e "${_DATA}/temp/courselist_${course}.pdf" ] && rm "${_DATA}/temp/courselist_${course}.pdf" - "$pdflatex" -halt-on-error -output-directory "${_DATA}/temp/" "${_DATA}/temp/courselist_${course}.tex" |debug >/dev/null - "$pdflatex" -halt-on-error -output-directory "${_DATA}/temp/" "${_DATA}/temp/courselist_${course}.tex" |debug >/dev/null -fi -if [ -r "${_DATA}/temp/courselist_${course}.pdf" ]; then - echo 'Content-Type: application/x-pdf\n' - cat "${_DATA}/temp/courselist_${course}.pdf" -fi