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

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

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

[[ $# != 1 ]] && usage

! [ -e "$1" ] && echo "ERROR: $1 NOT EXISTS" && exit 1

[ -L "$1" ] && { readlink="$(readlink "$1")" || exit; set -- "$readlink"; }
[ -f "$1" ] && {
    path="$(mktemp)" || exit
    cp "$1" "$path" || exit
    echo "$path"; exit
}
[ -d "$1" ] && {
    path="$(mktemp -d)" || exit
    cp -R "$1"/ "$path"
    echo $path; exit
}
echo "WTF: $1" && exit 1

