extend/fileutils: assume Ruby 2.
This commit is contained in:
		
							parent
							
								
									7dddc4df9f
								
							
						
					
					
						commit
						f32251d461
					
				@ -98,54 +98,6 @@ module FileUtils
 | 
			
		||||
  end
 | 
			
		||||
  module_function :mkdir
 | 
			
		||||
 | 
			
		||||
  # The #copy_metadata method in all current versions of Ruby has a
 | 
			
		||||
  # bad bug which causes copying symlinks across filesystems to fail;
 | 
			
		||||
  # see #14710.
 | 
			
		||||
  # This was resolved in Ruby HEAD after the release of 1.9.3p194, but
 | 
			
		||||
  # never backported into the 1.9.3 branch. Fixed in 2.0.0.
 | 
			
		||||
  # The monkey-patched method here is copied directly from upstream fix.
 | 
			
		||||
  if RUBY_VERSION < "2.0.0"
 | 
			
		||||
    # @private
 | 
			
		||||
    class Entry_
 | 
			
		||||
      alias_method :old_copy_metadata, :copy_metadata
 | 
			
		||||
      def copy_metadata(path)
 | 
			
		||||
        st = lstat
 | 
			
		||||
        unless st.symlink?
 | 
			
		||||
          File.utime st.atime, st.mtime, path
 | 
			
		||||
        end
 | 
			
		||||
        begin
 | 
			
		||||
          if st.symlink?
 | 
			
		||||
            begin
 | 
			
		||||
              File.lchown st.uid, st.gid, path
 | 
			
		||||
            rescue NotImplementedError
 | 
			
		||||
            end
 | 
			
		||||
          else
 | 
			
		||||
            File.chown st.uid, st.gid, path
 | 
			
		||||
          end
 | 
			
		||||
        rescue Errno::EPERM
 | 
			
		||||
          # clear setuid/setgid
 | 
			
		||||
          if st.symlink?
 | 
			
		||||
            begin
 | 
			
		||||
              File.lchmod st.mode & 01777, path
 | 
			
		||||
            rescue NotImplementedError
 | 
			
		||||
            end
 | 
			
		||||
          else
 | 
			
		||||
            File.chmod st.mode & 01777, path
 | 
			
		||||
          end
 | 
			
		||||
        else
 | 
			
		||||
          if st.symlink?
 | 
			
		||||
            begin
 | 
			
		||||
              File.lchmod st.mode, path
 | 
			
		||||
            rescue NotImplementedError
 | 
			
		||||
            end
 | 
			
		||||
          else
 | 
			
		||||
            File.chmod st.mode, path
 | 
			
		||||
          end
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # Run `scons` using a Homebrew-installed version rather than whatever is in the `PATH`.
 | 
			
		||||
  def scons(*args)
 | 
			
		||||
    system Formulary.factory("scons").opt_bin/"scons", *args
 | 
			
		||||
@ -187,14 +139,3 @@ module FileUtils
 | 
			
		||||
    ENV.update(removed)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
# Shim File.write for Ruby 1.8.7, where it's absent
 | 
			
		||||
unless File.respond_to?(:write)
 | 
			
		||||
  class File
 | 
			
		||||
    def self.write(filename, contents)
 | 
			
		||||
      File.open(filename, "w") do |file|
 | 
			
		||||
        file.write contents
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user