#!/bin/sh -e . ./config writings_by_cat() { for file in "$DIR_WRITINGS"/*."$EXT_WRITINGS"; do case "$(sed -n '2p' "$file") " in *" $1 "*) echo "$file" ;; esac done } if [ -z "$1" ]; then cats="$(categories "$DIR_WRITINGS"/*."$EXT_WRITINGS")" writings="$DIR_WRITINGS/*.$EXT_WRITINGS" all=1 else cats="$1" writings="$(writings_by_cat "$1")" fi writings=$(for f in $writings; do date="$(date -d "$(sed -n '3s/^; //p' "$f")" "+%s")" printf '%s %s\n' "$date" "$f" done | sort -rn | cut -f2 -d' ') cat < $([ -z "$all" ] && echo "#all") $(for c in $cats; do echo "#$c"; done) "