SELF="${0##*/}"
TEMPDIR=
-TEMPDIR_SENTINEL=.tempdir
+TEMPRUNDIR=.tempdir-run.d
cleanup() {
- if [ -e $TEMPDIR_SENTINEL ]; then
+ if [ -d $TEMPRUNDIR ]; then
local TEMPDIR; TEMPDIR="$PWD"
- echo Cleaning up tempdir $TEMPDIR… >> output.stderr
notify_output
cd /
rm -rf "$TEMPDIR"
- else
- notify_output
fi
trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15
}
trap cleanup 1 2 3 4 5 6 7 8 10 11 12 13 14 15
enter_tempdir() {
- if [ -e $TEMPDIR_SENTINEL ]; then
+ if [ -d $TEMPRUNDIR ]; then
return
else
fi
done
cd $(mktemp -dp "$TMPDIR" mutt.XXXXXXXXXX)
- touch $TEMPDIR_SENTINEL
+ mkdir $TEMPRUNDIR
fi
}
stdout="${2:-}"
stderr="${3:-}"
for i in stdout stderr; do
- if eval test -s output.$i; then
- anything=1
- escaped=$(eval sed -e 's,\",\\\",g' output.$i)
+ if eval test -s $TEMPRUNDIR/output.$i; then
+ escaped=$(eval sed -e 's,\",\\\",g' $TEMPRUNDIR/output.$i)
output="${output:+$output
}${i}:
$escaped"
}
notify_output() {
- [ -e $TEMPDIR_SENTINEL ] || return
+ [ -d $TEMPRUNDIR ] || return
local stdout stderr anything
for i in stdout stderr; do
- if [ -s "output.$i" ]; then
- eval $i="'output.$i'"
+ if [ -s "$TEMPRUNDIR/output.$i" ]; then
+ eval $i="'$TEMPRUNDIR/output.$i'"
else
eval $i=/dev/null
fi
}
guess_extension() {
- python -c "import mimetypes; print(mimetypes.guess_extension('$1'))"
+ python3 -c "import mimetypes; print(mimetypes.guess_extension('$1'))"
}
get_file() {
local t
if [ -z "$1" ]; then
- t=$(TMPDIR="$PWD" tempfile -s $(guess_extension "$MIMETYPE"))
+ t=$(mktemp -p "$PWD" tmp.XXXXXXXXXX.$(guess_extension "$MIMETYPE"))
cat > "$t"
echo "$t"
else
local filename; filename="$1"
if [ -z "$VIEWER" ]; then
[ -n "${2:-}" ] && filename="${2}:${1}"
- run-mailcap "$filename" > output.stdout 2> output.stderr
+ run-mailcap "$filename" > $TEMPRUNDIR/output.stdout 2> $TEMPRUNDIR/output.stderr
else
- $VIEWER "$filename" > output.stdout 2> output.stderr
+ $VIEWER "$filename" > $TEMPRUNDIR/output.stdout 2> $TEMPRUNDIR/output.stderr
fi
}
(
ts=$(($(date +%s) + $DELAY))
launch_viewer "$FILE" "$MIMETYPE"
- while [ $(date +%s) -lt $ts ]; do sleep $DELAY; done
+ while [ $(date +%s) -lt $ts ]; do sleep 1; done
cleanup
) &
trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15
(launch_viewer "$FILE" "$MIMETYPE") &
(
while [ $(($(stat -c%X "$FILE") + $DELAY)) -gt $(date +%s) ]; do
- sleep $DELAY
+ sleep 1
done
- echo Cleaning up $TMPDIR… > $TMPDIR/output.stderr
cleanup
) &
trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15