Fixes platform determination under JRuby (#1804).

git-svn-id: http://redmine.rubyforge.org/svn/trunk@1753 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2008-08-25 11:01:37 +00:00
parent 2f3f2d8b12
commit 116091a1d2
6 changed files with 32 additions and 6 deletions

26
lib/redmine/platform.rb Normal file
View File

@ -0,0 +1,26 @@
# Redmine - project management software
# Copyright (C) 2006-2008 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
module Redmine
module Platform
class << self
def mswin?
(RUBY_PLATFORM =~ /(:?mswin|mingw)/) || (RUBY_PLATFORM == 'java' && (ENV['OS'] || ENV['os']) =~ /windows/i)
end
end
end
end

View File

@ -138,7 +138,7 @@ module Redmine
end end
def shell_quote(str) def shell_quote(str)
if RUBY_PLATFORM =~ /mswin/ if Redmine::Platform.mswin?
'"' + str.gsub(/"/, '\\"') + '"' '"' + str.gsub(/"/, '\\"') + '"'
else else
"'" + str.gsub(/'/, "'\"'\"'") + "'" "'" + str.gsub(/'/, "'\"'\"'") + "'"
@ -186,7 +186,7 @@ module Redmine
# Hides username/password in a given command # Hides username/password in a given command
def self.hide_credential(cmd) def self.hide_credential(cmd)
q = (RUBY_PLATFORM =~ /mswin/ ? '"' : "'") q = (Redmine::Platform.mswin? ? '"' : "'")
cmd.to_s.gsub(/(\-\-(password|username))\s+(#{q}[^#{q}]+#{q}|[^#{q}]\S+)/, '\\1 xxxx') cmd.to_s.gsub(/(\-\-(password|username))\s+(#{q}[^#{q}]+#{q}|[^#{q}]\S+)/, '\\1 xxxx')
end end

View File

@ -25,7 +25,7 @@ class RepositoriesCvsControllerTest < Test::Unit::TestCase
# No '..' in the repository path # No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/cvs_repository' REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/cvs_repository'
REPOSITORY_PATH.gsub!(/\//, "\\") if RUBY_PLATFORM =~ /mswin/ REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
# CVS module # CVS module
MODULE_NAME = 'test' MODULE_NAME = 'test'

View File

@ -26,7 +26,7 @@ class RepositoriesGitControllerTest < Test::Unit::TestCase
# No '..' in the repository path # No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository' REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
REPOSITORY_PATH.gsub!(/\//, "\\") if RUBY_PLATFORM =~ /mswin/ REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
def setup def setup
@controller = RepositoriesController.new @controller = RepositoriesController.new

View File

@ -22,7 +22,7 @@ class RepositoryCvsTest < Test::Unit::TestCase
# No '..' in the repository path # No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/cvs_repository' REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/cvs_repository'
REPOSITORY_PATH.gsub!(/\//, "\\") if RUBY_PLATFORM =~ /mswin/ REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
# CVS module # CVS module
MODULE_NAME = 'test' MODULE_NAME = 'test'

View File

@ -22,7 +22,7 @@ class RepositoryGitTest < Test::Unit::TestCase
# No '..' in the repository path # No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository' REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
REPOSITORY_PATH.gsub!(/\//, "\\") if RUBY_PLATFORM =~ /mswin/ REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
def setup def setup
@project = Project.find(1) @project = Project.find(1)