aboutsummaryrefslogtreecommitdiff
path: root/lib/tmpfile
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tmpfile')
-rw-r--r--lib/tmpfile45
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/tmpfile b/lib/tmpfile
new file mode 100644
index 0000000..886d61c
--- /dev/null
+++ b/lib/tmpfile
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+# Setup a temporary file
+function hydra_set_tmpfile {
+ if [ -z "$BASEDIR" ]; then
+ echo "Please set BASEDIR before creating a tmp file"
+ exit 1
+ fi
+
+ if [ -z "$1" ]; then
+ template="$BASEDIR/tmp/hydra.XXXXXXXXXX"
+ else
+ template="$BASEDIR/tmp/$1.XXXXXXXXXX"
+ fi
+
+ mkdir -p $BASEDIR/tmp
+ hydra_git_ignore 'tmp/*'
+
+ if [ "$2" == "-d" ]; then
+ TMPWORK="`mktemp -d $template`"
+ else
+ TMPWORK="`mktemp $template`"
+ fi
+
+ if [ "$?" != "0" ]; then
+ echo "Error: can't set TMPWORK $TMPWORK"
+ exit 1
+ fi
+
+ trap "hydra_unset_tmpfile $TMPWORK; exit" INT TERM EXIT
+}
+
+# Remove a temporary file
+function hydra_unset_tmpfile {
+ if [ -z "$1" ]; then
+ echo "No tmp file set"
+ fi
+
+ rm -f $1
+
+ if [ "$?" != "0" ]; then
+ echo "Warning: could not delete file $1. Please delete it manually as it might have sensitive information."
+ exit 1
+ fi
+}