#!/bin/sh set -eu usage() { cat <<-'EOF' Usage: collection-for FILE collection-for -h EOF } help() { cat <<-'EOF' Options: -h, --help show this message FILE the path of the file to get the collection for Say the collection of the given file, using the path of FILE. Examples: Get "til" for "src/en/til/some-pt.md": $ collection-for src/en/til/some-pt.md til EOF } for flag in "$@"; do case "$flag" in --) break ;; --help) usage help exit ;; *) ;; esac done while getopts 'h' flag; do case "$flag" in h) usage help exit ;; *) usage >&2 exit 2 ;; esac done shift $((OPTIND - 1)) . src/lib.sh FILE="${1:-}" eval "$(assert_arg "$FILE" 'FILE')" lang="$(lang-for "$FILE")" DIR="$(dirname "$FILE")" PAGE="${FILE%.*}.page" if [ -e "$PAGE" ]; then exit 1 else collections | awk -v l="$lang" -v pre="$CONTENT_PREFIX" -v dir="$DIR" '{ "coll2path " l " " $0 | getline coll_path d = pre "/" l "/" coll_path sub(/\/$/, "", d) if (d == dir) { print $0 } }' fi