#!/usr/bin/env bash
{ set +x; } 2>/dev/null

usage() {
    echo "usage: $(basename $0) path ..." 1>&2
    [[ $1 == "-h" ]] || [[ $1 == "--help" ]]; exit
}

[[ $1 == "-h" ]] || [[ $1 == "--help" ]] && usage "$@"

[[ $# == 0 ]] || [[ $1 == "--help" ]] && usage

IFS=
mkdir="$(
while (($#)); do
	[[ "$1" == */* ]] && ! [ -e "${1%/*}" ] && echo "${1%/*}"
	shift
done;:
)" || exit

touch="$(IFS=$'\n';echo "$*" | sort -u)"

[[ -n "$mkdir" ]] && {
	mkdir="$(echo "$mkdir" | sort -u)"
	IFS=$'\n';set -- $mkdir;IFS=
	mkdir -p "$@" || exit
}

touch="$(echo "$touch" | sort -u)"
IFS=$'\n';set -- $touch;IFS=
/usr/bin/touch "$@" || exit
