diff --git a/clean.sh b/clean.sh index 2b9f5bfc7..02487e8b2 100755 --- a/clean.sh +++ b/clean.sh @@ -10,6 +10,8 @@ case $1 in ;; *) target=".stack-work-${1}" + shift + if [[ ! -d "${target}" ]]; then printf "%s does not exist or is no directory\n" "${target}" >&2 exit 1 @@ -20,7 +22,11 @@ case $1 in fi move-back() { - mv -v .stack-work "${target}" + if [[ -d .stack-work ]]; then + mv -v .stack-work "${target}" + else + mkdir -v "${target}" + fi [[ -d .stack-work-clean ]] && mv -v .stack-work-clean .stack-work } @@ -28,6 +34,9 @@ case $1 in mv -v "${target}" .stack-work trap move-back EXIT - stack clean + ( + set -ex + stack clean $@ + ) ;; esac