#!/bin/sh

set -eu

content_dir=${1:-content}
public_dir=${2:-public}

[ -d "$content_dir" ] || exit 0
mkdir -p "$public_dir"

find "$content_dir" -type f -print | while IFS= read -r source
do
    relative=${source#"$content_dir"/}

    case "$relative" in
        updates/_index.md)
            # Updates is an aggregate index, not a published Markdown document.
            continue
            ;;
        journal/_index.md)
            target=$public_dir/journal/_index.md
            ;;
        journal/*/*/*/*)
            target=$public_dir/${relative#journal/}
            ;;
        journal/*)
            # The V1 model has no public year or month section documents.
            continue
            ;;
        *)
            target=$public_dir/$relative
            ;;
    esac

    mkdir -p "$(dirname "$target")"
    cp "$source" "$target"
done
