Submitted By: Tushar Teredesai <tushar@linuxfromscratch.org>
Date: 2003-10-02
Initial Package Version: 1.5
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
Description: Add tempfile wrapper script. Use "make install-tempfile" to install it.
diff -Nur mktemp-1.5.orig/Makefile.in mktemp-1.5/Makefile.in
--- mktemp-1.5.orig/Makefile.in	2003-03-23 19:09:56.000000000 -0600
+++ mktemp-1.5/Makefile.in	2003-10-02 13:53:19.000000000 -0500
@@ -113,6 +113,9 @@
 install-man:
 	$(INSTALL) -m 0444 $(srcdir)/$(PROG).$(mantype) $(mandir)/man1/$(PROG).1
 
+install-tempfile: tempfile
+	$(INSTALL) -m 0555 tempfile $(bindir)/tempfile
+
 check:
 	@echo nothing to check
 
diff -Nur mktemp-1.5.orig/tempfile mktemp-1.5/tempfile
--- mktemp-1.5.orig/tempfile	1969-12-31 18:00:00.000000000 -0600
+++ mktemp-1.5/tempfile	2003-10-02 13:52:35.000000000 -0500
@@ -0,0 +1,71 @@
+#!/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.
+# --Tushar Teredesai <tushar@linuxfromscratch.org>
+
+# 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
