class Dir
Public Class Methods
mktmpdir(prefix_suffix=nil, tmpdir=nil) { |path| ... }
click to toggle source
# File lib/mcollective/monkey_patches.rb 72 def self.mktmpdir(prefix_suffix=nil, tmpdir=nil) 73 case prefix_suffix 74 when nil 75 prefix = "d" 76 suffix = "" 77 when String 78 prefix = prefix_suffix 79 suffix = "" 80 when Array 81 prefix = prefix_suffix[0] 82 suffix = prefix_suffix[1] 83 else 84 raise ArgumentError, "unexpected prefix_suffix: #{prefix_suffix.inspect}" 85 end 86 tmpdir ||= Dir.tmpdir 87 t = Time.now.strftime("%Y%m%d") 88 n = nil 89 begin 90 path = "#{tmpdir}/#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}" 91 path << "-#{n}" if n 92 path << suffix 93 Dir.mkdir(path, 0700) 94 rescue Errno::EEXIST 95 n ||= 0 96 n += 1 97 retry 98 end 99 100 if block_given? 101 begin 102 yield path 103 ensure 104 FileUtils.remove_entry_secure path 105 end 106 else 107 path 108 end 109 end
tmpdir()
click to toggle source
# File lib/mcollective/monkey_patches.rb 111 def self.tmpdir 112 tmp = '.' 113 for dir in [ENV['TMPDIR'], ENV['TMP'], ENV['TEMP'], '/tmp'] 114 if dir and stat = File.stat(dir) and stat.directory? and stat.writable? 115 tmp = dir 116 break 117 end rescue nil 118 end 119 File.expand_path(tmp) 120 end