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 ⇒ Object
private
-
.invalid_cert_flags ⇒ Array
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.
15 16 17 |
# File 'utils/svn.rb', line 15 def available? version.present? end |
.clear_version_cache ⇒ Object
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.
49 50 51 |
# File 'utils/svn.rb', line 49 def clear_version_cache remove_instance_variable(:@version) if defined?(@version) end |
.invalid_cert_flags ⇒ Array
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.
40 41 42 43 44 45 46 47 |
# File 'utils/svn.rb', line 40 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.
28 29 30 31 32 33 34 35 36 37 |
# File 'utils/svn.rb', line 28 def remote_exists?(url) return true unless available? args = ["ls", url, "--depth", "empty"] _, stderr, status = system_command("svn", args: 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.
20 21 22 23 24 25 |
# 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) @version = status.success? ? stdout.chomp[/svn, version (\d+(?:\.\d+)*)/, 1] : nil end |