#!/bin/sh
# build - generate files and package

set -eu

./clean

name=$(basename "$(pwd)")

# Read version and date from the first line of CHANGES
read version today <<EOF
$(head -n1 "doc/$name/CHANGES")
EOF

file="$name-$version.txz"

# Uppercase variant of the package name
NAME=$(printf %s "$name" | tr '[:lower:]' '[:upper:]')

# Create a man page for each executable in the bin dir.
mkdir -p 'man/man1'
for exe in bin/*; do
    if test -f "$exe" && test -x "$exe"; then
        cmd=$(basename "$exe")
        CMD=$(printf %s "$cmd" | tr '[:lower:]' '[:upper:]')
        {
            echo ".TH $CMD 1 \"$today\" \"$NAME $version\" \"User Commands\""
            echo ".\" Automatically generated from $exe"
            sed -nE 's/^## ?//p' "$exe"
        } | gzip -c > "man/man1/$cmd.1.gz"
    fi
done

tar --exclude=build \
    --exclude=clean \
    --exclude='*.txz' \
    --exclude='.git' \
    --exclude='.gitkeep' \
    --exclude='.gitignore' \
    --exclude='.DS_Store' \
    --exclude='*~' \
    --exclude='*.swp' \
    --exclude='#*#' \
    --create --xz --file "$file" *
