blob: 412c8c6e6907ce48247070eb6a50345daf48149c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#! /bin/sh
# usage: with-tmpdir [-t TEMPLATE] COMMAND [ARGS...]
# see mktemp(1) for TEMPLATE
set -efu
template=with-tmpdir.XXXXXXXX
case $1 in
-t) template=$2; shift 2;;
esac
TMPDIR=$(mktemp -dt "$template")
# make sure $TMPDIR exists and is a directory
(cd "$TMPDIR")
cleanup() {
# ensure $PWD != $TMPDIR
cd /
rm -vR "$TMPDIR"
}
trap 'cleanup; trap - EXIT INT QUIT' \
EXIT INT QUIT
export TMPDIR
"$@"
|