2019-04-19 15:38:03 +09:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2016-12-10 14:20:47 +00:00
|
|
|
module Utils
|
2017-08-24 01:30:29 +05:30
|
|
|
def self.clear_svn_version_cache
|
2020-08-11 18:53:13 +01:00
|
|
|
remove_instance_variable(:@svn_available) if defined?(@svn_available)
|
|
|
|
remove_instance_variable(:@svn_version) if defined?(@svn_version)
|
2017-08-24 01:30:29 +05:30
|
|
|
end
|
|
|
|
|
2016-12-10 14:20:47 +00:00
|
|
|
def self.svn_available?
|
2020-08-11 18:53:13 +01:00
|
|
|
return @svn_available if defined?(@svn_available)
|
2018-09-17 02:45:00 +02:00
|
|
|
|
2020-08-11 18:53:13 +01:00
|
|
|
@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]
|
2016-12-10 14:20:47 +00:00
|
|
|
end
|
|
|
|
|
2018-03-14 16:55:45 -05:00
|
|
|
def self.svn_remote_exists?(url)
|
2016-12-10 14:20:47 +00:00
|
|
|
return true unless svn_available?
|
2018-09-17 02:45:00 +02:00
|
|
|
|
2019-01-22 14:20:24 +00:00
|
|
|
# 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"
|
2016-12-10 14:20:47 +00:00
|
|
|
end
|
|
|
|
end
|