Module: Utils::Svn Private
- Extended by:
- SystemCommand::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
- .clear_version_cache ⇒ void private
- .invalid_cert_flags ⇒ Array<String> private
- .remote_exists?(url) ⇒ Boolean private
- .version ⇒ String? private
Methods included from SystemCommand::Mixin
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.
13 14 15 |
# File 'utils/svn.rb', line 13 def available? version.present? end |
.clear_version_cache ⇒ void
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.
This method returns an undefined value.
48 49 50 |
# File 'utils/svn.rb', line 48 def clear_version_cache remove_instance_variable(:@version) if defined?(@version) 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.
38 39 40 41 42 43 44 45 |
# File 'utils/svn.rb', line 38 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.
26 27 28 29 30 31 32 33 34 35 |
# File 'utils/svn.rb', line 26 def remote_exists?(url) return true unless available? args = ["ls", url, "--depth", "empty"] _, stderr, status = system_command("svn", args:, print_stderr: false) 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.
18 19 20 21 22 23 |
# File 'utils/svn.rb', line 18 def version return @version if defined?(@version) stdout, _, status = system_command(HOMEBREW_SHIMS_PATH/"shared/svn", args: ["--version"], print_stderr: false) @version = T.let(status.success? ? stdout.chomp[/svn, version (\d+(?:\.\d+)*)/, 1] : nil, T.nilable(String)) end |