Commit d8977e02 authored by Toshi MARUYAMA's avatar Toshi MARUYAMA Committed by Eric Davis

scm: cvs: add new method 'scm_cmd' to wrap shellout.

Refer Mercurial adapter r4830.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5082 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent 39caa465
......@@ -25,6 +25,9 @@ module Redmine
# CVS executable name
CVS_BIN = Redmine::Configuration['scm_cvs_command'] || "cvs"
# raised if scm command exited with error, e.g. unknown revision.
class ScmCommandAborted < CommandFailed; end
class << self
def client_command
@@bin ||= CVS_BIN
......@@ -338,8 +341,19 @@ module Redmine
def normalize_path(path)
path.sub(/^(\/)*(.*)/,'\2').sub(/(.*)(,v)+/,'\1')
end
def scm_cmd(*args, &block)
full_args = [CVS_BIN, '-d', root_url]
full_args += args
ret = shellout(full_args.map { |e| shell_quote e.to_s }.join(' '), &block)
if $? && $?.exitstatus != 0
raise ScmCommandAborted, "cvs exited with non-zero status: #{$?.exitstatus}"
end
ret
end
private :scm_cmd
end
class CvsRevisionHelper
attr_accessor :complete_rev, :revision, :base, :branchid
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment