~percona-toolkit-dev/percona-toolkit/fix-password-comma-bug-886077

« back to all changes in this revision

Viewing changes to lib/bash/tmpdir.sh

  • Committer: Daniel Nichter
  • Date: 2011-12-27 22:37:09 UTC
  • mfrom: (109.2.27 bash-tool-libs)
  • Revision ID: daniel@percona.com-20111227223709-v227ijlpw51qxl5z
MergeĀ lp:~daniel-nichter/percona-toolkit/bash-tool-libs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# This program is copyright 2011 Percona Inc.
 
2
# Feedback and improvements are welcome.
 
3
#
 
4
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
 
5
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
 
6
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 
7
#
 
8
# This program is free software; you can redistribute it and/or modify it under
 
9
# the terms of the GNU General Public License as published by the Free Software
 
10
# Foundation, version 2; OR the Perl Artistic License.  On UNIX and similar
 
11
# systems, you can issue `man perlgpl' or `man perlartistic' to read these
 
12
# licenses.
 
13
#
 
14
# You should have received a copy of the GNU General Public License along with
 
15
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
 
16
# Place, Suite 330, Boston, MA  02111-1307  USA.
 
17
# ###########################################################################
 
18
# tmpdir package
 
19
# ###########################################################################
 
20
 
 
21
# Package: tmpdir
 
22
# tmpdir make a secure temporary directory using mktemp.
 
23
 
 
24
set -u
 
25
 
 
26
# Global variables.
 
27
TMPDIR=""
 
28
 
 
29
# Sub: mk_tmpdir
 
30
#   Create a secure tmpdir and set TMPDIR.
 
31
#
 
32
# Optional Arguments:
 
33
#   dir - User-specified tmpdir (default none).
 
34
#
 
35
# Set Global Variables:
 
36
#   TMPDIR - Absolute path of secure temp directory.
 
37
mk_tmpdir() {
 
38
   local dir=${1:-""}
 
39
 
 
40
   if [ -n "$dir" ]; then
 
41
      if [ ! -d "$dir" ]; then
 
42
         mkdir $dir || die "Cannot make tmpdir $dir"
 
43
      fi
 
44
      TMPDIR="$dir"
 
45
   else
 
46
      local tool=`basename $0`
 
47
      local pid="$$"
 
48
      TMPDIR=`mktemp -d /tmp/${tool}.${pid}.XXXXX` \
 
49
         || die "Cannot make secure tmpdir"
 
50
   fi
 
51
}
 
52
 
 
53
# Sub: rm_tmpdir
 
54
#   Remove the tmpdir and unset TMPDIR.
 
55
#
 
56
# Optional Global Variables:
 
57
#   TMPDIR - TMPDIR set by <mk_tmpdir()>.
 
58
#
 
59
# Set Global Variables:
 
60
#   TMPDIR - Set to "".
 
61
rm_tmpdir() {
 
62
   if [ -n "$TMPDIR" ] && [ -d "$TMPDIR" ]; then
 
63
      rm -rf $TMPDIR
 
64
   fi
 
65
   TMPDIR=""
 
66
}
 
67
 
 
68
# ###########################################################################
 
69
# End tmpdir package
 
70
# ###########################################################################