Submitted By: Tushar Teredesai <tushar@linuxfromscratch.org>
Date: 2005-07-25
Initial Package Version: 1.5
Upstream Status: Sent, no response yet.
Origin: http://archive.linuxfromscratch.org/mail-archives/lfs-dev/2003-April/033602.html
        http://archive.linuxfromscratch.org/mail-archives/lfs-dev/2003-June/035234.html
		http://linuxfromscratch.org/pipermail/lfs-dev/2005-June/051908.html
Description: Add tempfile wrapper script. Use "make install-tempfile" to install it.

diff -Naur mktemp-1.5.orig/Makefile.in mktemp-1.5/Makefile.in
--- mktemp-1.5.orig/Makefile.in	2003-03-23 18:09:56.000000000 -0700
+++ mktemp-1.5/Makefile.in	2005-07-25 11:11:11.000000000 -0600
@@ -113,6 +113,9 @@
 install-man:
 	$(INSTALL) -m 0444 $(srcdir)/$(PROG).$(mantype) $(mandir)/man1/$(PROG).1
 
+install-tempfile: $(srcdir)/tempfile
+	$(INSTALL) -m 0555 $(srcdir)/tempfile $(bindir)/tempfile
+
 check:
 	@echo nothing to check
 
diff -Naur mktemp-1.5.orig/tempfile mktemp-1.5/tempfile
--- mktemp-1.5.orig/tempfile	1969-12-31 17:00:00.000000000 -0700
+++ mktemp-1.5/tempfile	2005-07-25 11:13:41.000000000 -0600
@@ -0,0 +1,85 @@
+#!/bin/bash
+# A tempfile wrapper for mktemp
+# Note: If you can, avoid using tempfile and use mktemp instead.
+#       This wrapper is provided for compatibility since some scripts use
+#       tempfile. If possible, the best solution is to patch the scripts
+#       to use mktemp.
+#
+# Copyright (c) Tushar Teredesai <tush@yahoo.com>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+
+# Usage info
+usage()
+{
+	echo "Usage: tempfile [OPTION]"
+	echo
+	echo "Create a temporary file in a safe manner."
+	echo "This version is a wrapper that invokes mktemp."
+	echo "NOTE: Do not use tempfile in your scripts."
+	echo "      Use mktemp instead."
+	echo
+	echo "[-d|--directory] DIR -> place temporary file in DIR"
+	echo "[-p|--prefix] PREFIX -> ignored"
+	echo "[-s|--suffix] SUFFIX -> ignored"
+	echo "[-n|--name] NAME -> ignored"
+	echo "[-m|--mode] MODE -> ignored"
+	echo "--version -> output version information and exit"
+}
+
+# parse all arguments
+while [ $# != 0 ]
+do
+	case "$1" in
+	# -d for tempfile is equivalent to -p for mktemp
+	-d|--directory)
+		dir="$2"
+		shift 2
+	;;
+	--directory=*)
+		dir="${1#--directory=}"
+		shift 1
+	;;
+	-d*)
+		dir="${1#-d}"
+		shift 1
+	;;
+	# The following switches are ignored.
+	-p|--prefix|-s|--suffix|-n|--name|-m|--mode)
+		shift 2
+	;;
+	-p*|--prefix=*|-s*|--suffix=*|-n*|--name=*|-m*|--mode=*)
+		shift 1
+	;;
+	# --version for tempfile is equivalent to -V for mktemp
+	--version)
+		echo "tempfile 1.0 (`mktemp -V 2>/dev/null`)"
+		exit 0
+	;;
+	# Unknown switch
+	*)
+		usage
+		exit 1
+	;;
+	esac
+done
+
+# Use the dir if $TMPDIR is not set.
+if [ -z "$TMPDIR" -a ! -z "$dir" ]
+then
+	export TMPDIR="$dir"
+fi
+# Execute mktemp with proper arguments
+# the -t behaviour of mktemp is the default for tempfile
+exec mktemp -t
