33 lines
931 B
Ruby

# frozen_string_literal: true
module Utils
def self.clear_svn_version_cache
remove_instance_variable(:@svn_available) if defined?(@svn_available)
remove_instance_variable(:@svn_version) if defined?(@svn_version)
end
def self.svn_available?
return @svn_available if defined?(@svn_available)
@svn_available = quiet_system HOMEBREW_SHIMS_PATH/"scm/svn", "--version"
end
def self.svn_version
return unless svn_available?
return @svn_version if defined?(@svn_version)
@svn_version = Utils.popen_read(
HOMEBREW_SHIMS_PATH/"scm/svn", "--version"
).chomp[/svn, version (\d+(?:\.\d+)*)/, 1]
end
def self.svn_remote_exists?(url)
return true unless svn_available?
# OK to unconditionally trust here because we're just checking if
# a URL exists.
quiet_system "svn", "ls", url, "--depth", "empty",
"--non-interactive", "--trust-server-cert"
end
end