From 7c8bb1c40abce13db478aaefde520ffaa4b50a4a Mon Sep 17 00:00:00 2001 From: Orestis <orestis.malaspinas@pm.me> Date: Thu, 10 Mar 2022 00:29:06 +0100 Subject: [PATCH] refactor gen_index --- slides/gen_index.sh | 48 ++++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/slides/gen_index.sh b/slides/gen_index.sh index 3d894c5..d518e4a 100755 --- a/slides/gen_index.sh +++ b/slides/gen_index.sh @@ -1,5 +1,26 @@ #!/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="" @@ -8,26 +29,17 @@ PREFIX="" classes=() for i in *.md; do [ -f "$i" ] || break - comp=$(echo "$fullName" | sed "${NUM_LINE}q;d" $i) - date=$(echo "$fullName" | sed "3q;d" $i) - IFS=':' - comp=($comp); - comp=${comp[1]} - date=($date); - date=${date[1]} - # echo $comp - IFS='"' - comp=($comp) - comp=${comp[1]} - date=($date); - date=${date[1]} - # echo $comp | awk '{ print substr( $0, 1, length($0)-1 ) }' - # echo $comp - # date=sed "${NUM_LINE}q;d" $i + 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) - # echo "[${date} ${comp}](${PREFIX}${i}.pdf)" >> index.md + classes+=("$class") done IFS=$'\n' classes=($(sort <<<"${classes[*]}")) -- GitLab