mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* lib/tmpdir.rb (Dir::tmpdir): test the current directory suitable for
temporary directory. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									5e3009aa45
								
							
						
					
					
						commit
						b681457f01
					
				
					 2 changed files with 12 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -18,18 +18,21 @@ class Dir
 | 
			
		|||
  # Returns the operating system's temporary file path.
 | 
			
		||||
 | 
			
		||||
  def Dir::tmpdir
 | 
			
		||||
    tmp = '.'
 | 
			
		||||
    if $SAFE > 0
 | 
			
		||||
      tmp = @@systmpdir
 | 
			
		||||
    else
 | 
			
		||||
      for dir in [ENV['TMPDIR'], ENV['TMP'], ENV['TEMP'], @@systmpdir, '/tmp']
 | 
			
		||||
        if dir and stat = File.stat(dir) and stat.directory? and stat.writable? and
 | 
			
		||||
      tmp = nil
 | 
			
		||||
      for dir in [ENV['TMPDIR'], ENV['TMP'], ENV['TEMP'], @@systmpdir, '/tmp', '.']
 | 
			
		||||
        next if !dir
 | 
			
		||||
        dir = File.expand_path(dir)
 | 
			
		||||
        if stat = File.stat(dir) and stat.directory? and stat.writable? and
 | 
			
		||||
            (!stat.world_writable? or stat.sticky?)
 | 
			
		||||
          tmp = dir
 | 
			
		||||
          break
 | 
			
		||||
        end rescue nil
 | 
			
		||||
      end
 | 
			
		||||
      File.expand_path(tmp)
 | 
			
		||||
      raise ArgumentError, "could not find a temporary directory" if !tmp
 | 
			
		||||
      tmp
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue