diff options
| author | Ben Muschol | 2017-09-27 16:36:10 -0400 |
|---|---|---|
| committer | GitHub | 2017-09-27 16:36:10 -0400 |
| commit | 2d6bd0400785b5fb061f793f70736f12e6ec8231 (patch) | |
| tree | fd0abc8937fc85fb49714ad9dc4a3735fa58242f /Library/Homebrew/utils | |
| parent | fe5c885da0b8b69a5de74647e4181b137acb835f (diff) | |
| parent | cb139ca381cb7f00a4dfdc21482515f103aed417 (diff) | |
| download | brew-2d6bd0400785b5fb061f793f70736f12e6ec8231.tar.bz2 | |
Merge branch 'master' into check-for-master-no-refactor
Diffstat (limited to 'Library/Homebrew/utils')
| -rw-r--r-- | Library/Homebrew/utils/analytics.rb | 5 | ||||
| -rw-r--r-- | Library/Homebrew/utils/curl.rb | 5 | ||||
| -rw-r--r-- | Library/Homebrew/utils/git.rb | 23 | ||||
| -rw-r--r-- | Library/Homebrew/utils/github.rb | 14 | ||||
| -rw-r--r-- | Library/Homebrew/utils/popen.rb | 14 | ||||
| -rw-r--r-- | Library/Homebrew/utils/ruby.sh | 13 | ||||
| -rw-r--r-- | Library/Homebrew/utils/shell.rb | 4 | ||||
| -rw-r--r-- | Library/Homebrew/utils/svn.rb | 4 |
8 files changed, 40 insertions, 42 deletions
diff --git a/Library/Homebrew/utils/analytics.rb b/Library/Homebrew/utils/analytics.rb index a89995ba9..9766c14db 100644 --- a/Library/Homebrew/utils/analytics.rb +++ b/Library/Homebrew/utils/analytics.rb @@ -3,6 +3,11 @@ require "erb" module Utils module Analytics class << self + def clear_anonymous_os_prefix_ci_cache + return unless instance_variable_defined?(:@anonymous_os_prefix_ci) + remove_instance_variable(:@anonymous_os_prefix_ci) + end + def os_prefix_ci @anonymous_os_prefix_ci ||= begin os = OS_VERSION diff --git a/Library/Homebrew/utils/curl.rb b/Library/Homebrew/utils/curl.rb index bc7055c0c..7807d2034 100644 --- a/Library/Homebrew/utils/curl.rb +++ b/Library/Homebrew/utils/curl.rb @@ -38,11 +38,14 @@ def curl(*args) end def curl_download(*args, to: nil, continue_at: "-", **options) + had_incomplete_download ||= File.exist?(to) curl("--location", "--remote-time", "--continue-at", continue_at.to_s, "--output", to, *args, **options) rescue ErrorDuringExecution # `curl` error 33: HTTP server doesn't seem to support byte ranges. Cannot resume. - if $CHILD_STATUS.exitstatus == 33 && continue_at == "-" + # HTTP status 416: Requested range not satisfiable + if ($CHILD_STATUS.exitstatus == 33 || had_incomplete_download) && continue_at == "-" continue_at = 0 + had_incomplete_download = false retry end diff --git a/Library/Homebrew/utils/git.rb b/Library/Homebrew/utils/git.rb index 43d93b64e..f1113af66 100644 --- a/Library/Homebrew/utils/git.rb +++ b/Library/Homebrew/utils/git.rb @@ -16,8 +16,7 @@ module Git def last_revision_of_file(repo, file, before_commit: nil) relative_file = Pathname(file).relative_path_from(repo) - commit_hash = last_revision_commit_of_file(repo, file, before_commit: before_commit) - + commit_hash = last_revision_commit_of_file(repo, relative_file, before_commit: before_commit) out, = Open3.capture3( HOMEBREW_SHIMS_PATH/"scm/git", "-C", repo, "show", "#{commit_hash}:#{relative_file}" @@ -28,8 +27,7 @@ end module Utils def self.git_available? - return @git if instance_variable_defined?(:@git) - @git = quiet_system HOMEBREW_SHIMS_PATH/"scm/git", "--version" + @git ||= quiet_system HOMEBREW_SHIMS_PATH/"scm/git", "--version" end def self.git_path @@ -50,21 +48,20 @@ module Utils return if git_available? # we cannot install brewed git if homebrew/core is unavailable. - raise "Git is unavailable" unless CoreTap.instance.installed? - - begin - oh1 "Installing git" - safe_system HOMEBREW_BREW_FILE, "install", "git" - rescue - raise "Git is unavailable" + if CoreTap.instance.installed? + begin + oh1 "Installing git" + safe_system HOMEBREW_BREW_FILE, "install", "git" + rescue + raise "Git is unavailable" + end end - clear_git_available_cache raise "Git is unavailable" unless git_available? end def self.clear_git_available_cache - remove_instance_variable(:@git) if instance_variable_defined?(:@git) + @git = nil @git_path = nil @git_version = nil end diff --git a/Library/Homebrew/utils/github.rb b/Library/Homebrew/utils/github.rb index a1cf5fbba..df0811e95 100644 --- a/Library/Homebrew/utils/github.rb +++ b/Library/Homebrew/utils/github.rb @@ -86,15 +86,9 @@ module GitHub def api_credentials_type token, username = api_credentials - if token && !token.empty? - if username && !username.empty? - :keychain - else - :environment - end - else - :none - end + return :none if !token || token.empty? + return :keychain if !username || username.empty? + :environment end def api_credentials_error_message(response_headers, needed_scopes) @@ -245,7 +239,7 @@ module GitHub end def print_pull_requests_matching(query) - open_or_closed_prs = search_issues(query, type: "pr") + open_or_closed_prs = search_issues(query, type: "pr", user: "Homebrew") open_prs = open_or_closed_prs.select { |i| i["state"] == "open" } prs = if !open_prs.empty? diff --git a/Library/Homebrew/utils/popen.rb b/Library/Homebrew/utils/popen.rb index 4e03711a1..2fa3ade46 100644 --- a/Library/Homebrew/utils/popen.rb +++ b/Library/Homebrew/utils/popen.rb @@ -1,20 +1,20 @@ module Utils - def self.popen_read(*args, &block) - popen(args, "rb", &block) + def self.popen_read(*args, **options, &block) + popen(args, "rb", options, &block) end - def self.popen_write(*args, &block) - popen(args, "wb", &block) + def self.popen_write(*args, **options, &block) + popen(args, "wb", options, &block) end - def self.popen(args, mode) + def self.popen(args, mode, options = {}) IO.popen("-", mode) do |pipe| if pipe return pipe.read unless block_given? yield pipe else - $stderr.reopen("/dev/null", "w") - exec(*args) + options[:err] ||= :close unless ENV["HOMEBREW_STDERR"] + exec(*args, options) end end end diff --git a/Library/Homebrew/utils/ruby.sh b/Library/Homebrew/utils/ruby.sh index 6945c068b..9a3ab2e81 100644 --- a/Library/Homebrew/utils/ruby.sh +++ b/Library/Homebrew/utils/ruby.sh @@ -2,7 +2,8 @@ setup-ruby-path() { local vendor_dir local vendor_ruby_current_version local vendor_ruby_path - local ruby_version_major + local ruby_old_version + local minimum_ruby_version="2.3.3" vendor_dir="$HOMEBREW_LIBRARY/Homebrew/vendor" vendor_ruby_current_version="$vendor_dir/portable-ruby/current" @@ -21,7 +22,7 @@ setup-ruby-path() { if [[ $(readlink "$vendor_ruby_current_version") != "$(<"$vendor_dir/portable-ruby-version")" ]] then - if ! brew vendor-install ruby --quiet + if ! brew vendor-install ruby then onoe "Failed to upgrade vendor Ruby." fi @@ -36,14 +37,12 @@ setup-ruby-path() { if [[ -n "$HOMEBREW_RUBY_PATH" ]] then - ruby_version_major="$("$HOMEBREW_RUBY_PATH" --version)" - ruby_version_major="${ruby_version_major#ruby }" - ruby_version_major="${ruby_version_major%%.*}" + ruby_old_version="$("$HOMEBREW_RUBY_PATH" -rrubygems -e "puts Gem::Version.new('$minimum_ruby_version') > Gem::Version.new(RUBY_VERSION)")" fi - if [[ "$ruby_version_major" != "2" || -n "$HOMEBREW_FORCE_VENDOR_RUBY" ]] + if [[ "$ruby_old_version" == "true" || -n "$HOMEBREW_FORCE_VENDOR_RUBY" ]] then - brew vendor-install ruby --quiet + brew vendor-install ruby if [[ ! -x "$vendor_ruby_path" ]] then odie "Failed to install vendor Ruby." diff --git a/Library/Homebrew/utils/shell.rb b/Library/Homebrew/utils/shell.rb index 5327f6ecf..8c1c5f984 100644 --- a/Library/Homebrew/utils/shell.rb +++ b/Library/Homebrew/utils/shell.rb @@ -51,8 +51,6 @@ module Utils end end - private - SHELL_PROFILE_MAP = { bash: "~/.bash_profile", csh: "~/.cshrc", @@ -65,8 +63,6 @@ module Utils UNSAFE_SHELL_CHAR = %r{([^A-Za-z0-9_\-.,:/@\n])} - module_function - def csh_quote(str) # ruby's implementation of shell_escape str = str.to_s diff --git a/Library/Homebrew/utils/svn.rb b/Library/Homebrew/utils/svn.rb index fb49ac2e9..150b7eee7 100644 --- a/Library/Homebrew/utils/svn.rb +++ b/Library/Homebrew/utils/svn.rb @@ -1,4 +1,8 @@ module Utils + def self.clear_svn_version_cache + remove_instance_variable(:@svn) if instance_variable_defined?(:@svn) + end + def self.svn_available? return @svn if instance_variable_defined?(:@svn) @svn = quiet_system HOMEBREW_SHIMS_PATH/"scm/svn", "--version" |
