#!/bin/bash set -e function get_info() { local field=$(echo "$fullName" | sed "$2q;d" $1); IFS=$3; local field=($field); if [ "${field}" != $5 ]; then return 1 fi local field=${field[1]}; IFS=$4; local field=($field); local field=${field[1]}; echo "$field" } function fail() { printf '%s\n' "$1" >&2 ## Send message to stderr. exit "${2-1}" ## Return a code specified by $2, or 1 by default. } OIFS=$IFS NUM_LINE=2 PREFIX="" # PREFIX=cours/algo/slides/ classes=() for i in *.md; do [ -f "$i" ] || break date="$(get_info $i 3 ":" '"' "date")" if [ "$date" == 1 ]; then fail "Error date field not found" fi comp="$(get_info $i 2 ":" '"' "title")" if [ "$comp" == 1 ]; then fail "Error title field not found" fi i="${i%.*}" class="[${date}: ${comp}](${PREFIX}${i}.pdf)" classes+=("$class") done IFS=$'\n' classes=($(sort <<<"${classes[*]}")) date=$(date '+%Y-%m-%d') echo "---" >> index.md echo "title: \"Slides du cours d'algorithmique\"" >> index.md echo "date: \"${date}\"" >> index.md echo "---" >> index.md echo "" >> index.md echo "# Tous les slides du cours d'algorithmique" >> index.md echo "" >> index.md for i in ${classes[*]}; do echo "* $i" >> index.md done IFS=$OIFS