#!/bin/zsh

set -eu
setopt extendedglob

scriptname=$0:a
thisdir=$0:a:h
basetest=$thisdir/1

function die { echo 1>&2 $*; exit 1 }
function usage {
    cat 1>&2 <<EOF; exit
Usage: ${scriptname:t} [-h | -x]

Creates a new test directory.
By default, just print what it will do.
When -x is given, it really creates new dir.
EOF
}

#========================================
zparseopts -D x=o_execute h=o_help

function run {
    print -- $@
    if (($#o_execute)); then
	"$@"
    fi
}

if (($#o_help)); then
    usage
fi

if ! (($#o_execute)); then
    cat <<EOF
# Dry run mode. (Nothing will be changed.)

EOF
fi

#========================================

tests=($thisdir/<1->(N))

newdir=$thisdir/$[$#tests+1]

for f in $newdir/{html,extlib}; do
    run mkdir -p $f
done

run ln -vnsf ../../app.psgi $newdir/app.psgi

run $basetest/t/lntests.zsh $newdir/t

if (($#o_execute)); then
    echo
    echo CREATED: $newdir
fi