#!/bin/sh set -eu usage() { cat <<-'EOF' Usage: dynmake.sh dynmake.sh -h EOF } help() { cat <<-'EOF' Options: -h, --help show this message Generate make(1) code for later evaluation by make(1). What this scripts does is fill the gap where make(1) can't handle globs and dynamic dependencies, and uses some ad-hoc scripts to generate those. 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)) varlist() { sed -e 's/^/ /' \ -e 's/$/ \\/' } # # Pastebins # pastebins() { find src/content/pastebins/ -name '*.md' } printf 'pastebins.md = \\\n' pastebins | varlist printf '\n' pastebins | sed 's/^\(.*\)\.md$/\1.html: \1.entry-env/' pastebins | sed 's/^\(.*\)\.md$/\1.html: \1.entry-content/' pastebins | sed 's/^\(.*\)\.md$/\1.entry-content: \1.entry-env/'