+list_courses() {
+ local file name cachefile="${_DATA}/cache/courses.ui.cache"
+ if [ $cachefile -nt "${_DATA}/ical" ]; then
+ cat "$cachefile"
+ else
+ for file in "$_DATA/ical"/*.ics; do
+ name="$(pdi_value "$(pdi_load "$file")" SUMMARY || l10n "(unnamed course)" |unescape |HTML)"
+ printf '%s/%s\n' "${file##*/}" "$name"
+ done \
+ | sort -t/ -k2 |tee "$cachefile"
+ fi
+}
+