Added support for returning HTTP status codes and for git and svn URLs
This commit is contained in:
		
							parent
							
								
									ea440ca328
								
							
						
					
					
						commit
						ed9f775b77
					
				@ -1490,10 +1490,20 @@ class ResourceAuditor
 | 
			
		||||
 | 
			
		||||
    return unless @online
 | 
			
		||||
    urls.each do |url|
 | 
			
		||||
      begin
 | 
			
		||||
        nostdout { curl "--connect-timeout", "15", "--output", "/dev/null", "--range", "0-0", url }
 | 
			
		||||
      rescue ErrorDuringExecution
 | 
			
		||||
        problem "The mirror #{url} is not reachable (curl exit code #{$?.exitstatus})"
 | 
			
		||||
      if url.start_with? "http", "ftp"
 | 
			
		||||
        status_code, _, _ = curl_output "--connect-timeout", "15", "--output", "/dev/null", "--range", "0-0", \
 | 
			
		||||
                                        "--write-out", "%{http_code}", url
 | 
			
		||||
        unless status_code.start_with? "20"
 | 
			
		||||
          problem "The mirror #{url} is not reachable (HTTP status code #{status_code})"
 | 
			
		||||
        end
 | 
			
		||||
      elsif url.start_with? "git"
 | 
			
		||||
        unless Utils.git_remote_exists url
 | 
			
		||||
          problem "The mirror #{url} is not a valid git URL"
 | 
			
		||||
        end
 | 
			
		||||
      elsif url.start_with? "svn"
 | 
			
		||||
        unless Utils.svn_remote_exists url
 | 
			
		||||
          problem "The mirror #{url} is not a valid svn URL"
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
      check_insecure_mirror(url) if url.start_with? "http:"
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
@ -10,6 +10,7 @@ require "utils/github"
 | 
			
		||||
require "utils/hash"
 | 
			
		||||
require "utils/inreplace"
 | 
			
		||||
require "utils/popen"
 | 
			
		||||
require "utils/svn"
 | 
			
		||||
require "utils/tty"
 | 
			
		||||
require "time"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -40,4 +40,9 @@ module Utils
 | 
			
		||||
    @git_path = nil
 | 
			
		||||
    @git_version = nil
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.git_remote_exists(url)
 | 
			
		||||
    return true unless git_available?
 | 
			
		||||
    quiet_system "git", "ls-remote", url
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										11
									
								
								Library/Homebrew/utils/svn.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Library/Homebrew/utils/svn.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
module Utils
 | 
			
		||||
  def self.svn_available?
 | 
			
		||||
    return @svn if instance_variable_defined?(:@svn)
 | 
			
		||||
    @svn = quiet_system HOMEBREW_SHIMS_PATH/"scm/svn", "--version"
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.svn_remote_exists(url)
 | 
			
		||||
    return true unless svn_available?
 | 
			
		||||
    quiet_system "svn", "ls", url, "--depth", "empty"
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user