#!/bin/sh

VERSION="2.0"

print_help()
{
    printf "%s\n" "
anyinit creates new working directory for any build system.

Usage:
anyinit DIRECTORY

DIRECTORY is the name for newly created dir.

More details in
    man anyinit
"

}

local_which()
{
    arg="$1"

    if test -x "${arg}" ; then
        printf "%s\n" "${arg}"
        return 0
    fi

    IFS=:
    for dir in ${PATH} ; do
        if test -x "${dir}/${arg}" ; then
            printf "%s\n" "${dir}/${arg}"
            return 0
        fi
    done
    return 1
}

case "$1" in
    --help)
            print_help
            exit 0
        ;;
    --version)
            printf "%s\n" "${VERSION}"
            exit 0
        ;;
esac

arg_dir="$1"
if test -z "${arg_dir}" ; then
    print_help
    exit 1
fi

# analogue for ../../
tmp_dir="$(local_which "$0")"
tmp_dir="${tmp_dir%/*}"
tmp_dir="${tmp_dir%/*}"
base_dir="$(cd $tmp_dir ; pwd -P )"

source_dir=
if test -d "${HOME}/.etc/any/workdir" ; then
    source_dir="${HOME}/.etc/any/workdir"
elif test -d "${base_dir}/lib/any/workdir" ; then
    source_dir="${base_dir}/lib/any/workdir"
elif test -d "${base_dir}/share/any/workdir" ; then
    source_dir="${base_dir}/share/any/workdir"
fi

if test -z "${source_dir}" ; then
    printf "%s\n" "
Template for new working directory has not been found at following locations:
${HOME}/.etc/any/workdir
${base_dir}/lib/any/workdir
${base_dir}/share/any/workdir

Exiting.
"
    exit 2
fi

set -o errexit

mkdir -p "${arg_dir}"
cp -pRf "${source_dir}/"* "${arg_dir}/"
printf "%s\n" "Done.
${arg_dir}/ is ready. Run to start:
  cd ${arg_dir}/
Then set up rdd.def file according to your platform and project.
If your installation does not bring predefined settings, uncomment
and fill these strings:

#[id]
#rdd_prf_id = any, amd64, gcc, linux
#[all]
#rdd_prf_id = plainroot, tch

See also examples and comments around in rdd.def.
"
