Module: Utils::Svn Private
- Extended by:
- SystemCommand::Mixin, Output::Mixin
- Defined in:
- utils/svn.rb
Overview
This module is part of a private API. This module may only be used in the Homebrew/brew repository. Third parties should avoid using this module if possible, as it may be removed or changed without warning.
Helper functions for querying SVN information.
Class Method Summary collapse
- .available? ⇒ Boolean private
- .invalid_cert_flags ⇒ Array<String> private
- .remote_exists?(url) ⇒ Boolean private
- .version ⇒ String? private
Methods included from Output::Mixin
issue_reporting_message, odebug, odeprecated, odie, odisabled, ofail, oh1, oh1_title, ohai, ohai_title, onoe, opoo, opoo_once, opoo_outside_github_actions, opoo_without_github_actions_annotation, pretty_cannot_install, pretty_deprecated, pretty_disabled, pretty_duration, pretty_install_status, pretty_installed, pretty_removed, pretty_uninstalled, pretty_unmarked, pretty_upgradable, pretty_warning
Methods included from SystemCommand::Mixin
command_sandbox, system_command, system_command!
Class Method Details
.available? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
15 16 17 |
# File 'utils/svn.rb', line 15 def available? version.present? end |
.invalid_cert_flags ⇒ Array<String>
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
46 47 48 49 50 51 52 53 |
# File 'utils/svn.rb', line 46 def invalid_cert_flags opoo "Ignoring Subversion certificate errors!" args = ["--non-interactive", "--trust-server-cert"] if Version.new(version || "-1") >= Version.new("1.9") args << "--trust-server-cert-failures=expired,not-yet-valid" end args end |
.remote_exists?(url) ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
34 35 36 37 38 39 40 41 42 43 |
# File 'utils/svn.rb', line 34 def remote_exists?(url) return true unless available? args = ["ls", url, "--depth", "empty"] _, stderr, status = system_command("svn", args:, print_stderr: false).to_a return !!status.success? unless stderr.include?("certificate verification failed") # OK to unconditionally trust here because we're just checking if a URL exists. system_command("svn", args: args.concat(invalid_cert_flags), print_stderr: false).success? end |
.version ⇒ String?
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'utils/svn.rb', line 20 def version return @version if defined?(@version) stdout, _, status = system_command(HOMEBREW_SHIMS_PATH/"shared/svn", args: ["--version"], print_stderr: false).to_a @version = T.let(status.success? ? stdout.chomp[/svn, version (\d+(?:\.\d+)*)/, 1] : nil, T.nilable(String)) if @version.nil? require "utils/tool" Utils::Tool.invalidate_cache(:svn) end @version end |