#!/usr/bin/env bash set -u set -o pipefail export LC_ALL=C # Own a new directory; verify physical paths before cleanup. parent=$(cd -- "${TMPDIR:-/tmp}" && pwd -P) || exit 1 work=$(mktemp -d "$parent/bhylu-bash.XXXXXX") || exit 1 work=$(cd -- "$work" && pwd -P) || exit 1 case "$work" in "$parent"/bhylu-bash.??????) ;; *) exit 1 ;; esac cleanup() { cd -- "$parent" || return 1 [[ -d $work && ! -L $work ]] || return 1 [[ $(cd -- "$work" && pwd -P) == "$work" ]] || return 1 case "$work" in "$parent"/bhylu-bash.??????) rm -r -- "$work" ;; *) return 1 ;; esac } trap cleanup EXIT cd -- "$work" || exit 1 mkdir -p -- output/drafts touch -- output/drafts/ready.txt [[ -d output/drafts && -f output/drafts/ready.txt && ! -s output/drafts/ready.txt ]] || exit 1 printf "Directory tree and empty marker created\n"