X-Git-Url: https://git.plutz.net/?p=confetti;a=blobdiff_plain;f=actions%2Fgenerate_courselist.sh;h=d777536814fed736064ab1da44bfe909ec7741d3;hp=35c9fac6041c9afb5c263855c3729d634e28dddc;hb=90288ab07bb1ec83a91581fadc674a87a250a853;hpb=51b0a660590e9a0adaaa35a3259de32156d1dee6 diff --git a/actions/generate_courselist.sh b/actions/generate_courselist.sh index 35c9fac..d777536 100755 --- a/actions/generate_courselist.sh +++ b/actions/generate_courselist.sh @@ -1,6 +1,6 @@ #!/bin/zsh -# Copyright 2014, 2016 Paul Hänsch +# Copyright 2014, 2016, 2017 Paul Hänsch # # This file is part of Confetti. # @@ -27,7 +27,7 @@ fromdate="$(date -d "$fromdate" +%s)" 2>/dev/null . ${_EXEC}/pages/cards.sh tex_clean() { #in dire need for improvement - echo "$*" |tr -d '{&}\\' + printf %s "$*" |tr -d '{&}\\"' } @@ -48,49 +48,24 @@ list_attendee() { #Parameter: Cardfile tel='' for n in TEL TEL{0..10}; do if (echo "$values[$n]" |grep -Eq '[0-9]'); then - [ -n "$tel" ] && tel="$tel\\newline $values[$n]" || tel="$values[$n]" + [ -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 $values[$n]" || note="$values[$n]" + [ -n "$note" ] && note="$note\\newline $(tex_clean "$values[$n]")" || note="$(tex_clean "$values[$n]")" fi; done - printf '%s & %s & %s & %s\n' "$fullname" "$values[BDAY]" "$tel" "$note" \ + 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" - unset key - declare -A tags declare -A values - ics_parse "$calendarfile" |while read -r line; do - declare -A tag - case "$line" in - value*) eval "$line";; - tag*) eval "$line";; - key*) - if [ -z "$key" ]; then - eval "$line" - else - values[$key]="$(tex_clean "$value")" - for t in ${(k)tag}; do - tags[${key}_$t]="$tag[$t]" - done - eval "$line" - if [ -n "$values[$key]" ]; then - n=0 - while [ -n "$values[$key$n]" ]; do n=$(($n + 1)); done - key=$key$n - fi - unset value - unset tag - fi - ;; - esac - done + ics_parse "$calendarfile" dtstart="$values[DTSTART]" [ -z "$dtstart" ] && dtstart=$(date +%Y%m%dT%H%M%S)