summaryrefslogtreecommitdiff
path: root/lib/tmpfile
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2010-09-22 16:29:40 -0300
committerSilvio Rhatto <rhatto@riseup.net>2010-09-22 16:29:40 -0300
commitfec2db557dcad1f52a1ffa8b612629a0b8b4c054 (patch)
tree5e1305477007f7720027fa5974824937aa4ffe63 /lib/tmpfile
parent9d4d507a6c86412f1815efc1e9345f37f0956465 (diff)
downloadhydra-fec2db557dcad1f52a1ffa8b612629a0b8b4c054.tar.gz
hydra-fec2db557dcad1f52a1ffa8b612629a0b8b4c054.tar.bz2
App skeleton
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
+}