1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* lib/rake.rb (FileUtils#rake_system): no longer needs workaround

on Windows.  [ruby-core:21339]

* lib/rake/win32.rb (Rake::Win32#rake_system): ditto.

* lib/rake/win32.rb (Rake::Win32#win32_system_dir): no longer
  needs environment variables other than APPDATA now.

* lib/rake.rb (Rake::Application#standard_system_dir): uses
  platfrom specific definition on Windows system.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2009-01-29 03:29:53 +00:00
parent 7dd1a098a6
commit f226c38630
3 changed files with 33 additions and 40 deletions

View file

@ -1,3 +1,16 @@
Thu Jan 29 12:29:51 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/rake.rb (FileUtils#rake_system): no longer needs workaround
on Windows. [ruby-core:21339]
* lib/rake/win32.rb (Rake::Win32#rake_system): ditto.
* lib/rake/win32.rb (Rake::Win32#win32_system_dir): no longer
needs environment variables other than APPDATA now.
* lib/rake.rb (Rake::Application#standard_system_dir): uses
platfrom specific definition on Windows system.
Thu Jan 29 12:18:54 2009 Technorama Ltd. <oss-ruby@technorama.net>
* lib/securerandom.rb: new method SecureRandom#uuid

View file

@ -983,11 +983,7 @@ module FileUtils
end
def rake_system(*cmd)
if Rake::Win32.windows?
Rake::Win32.rake_system(*cmd)
else
system(*cmd)
end
system(*cmd)
end
private :rake_system
@ -2364,8 +2360,6 @@ module Rake
begin
if ENV['RAKE_SYSTEM']
ENV['RAKE_SYSTEM']
elsif Win32.windows?
Win32.win32_system_dir
else
standard_system_dir
end
@ -2373,8 +2367,14 @@ module Rake
end
# The standard directory containing system wide rake files.
def standard_system_dir #:nodoc:
File.join(File.expand_path('~'), '.rake')
if Win32.windows?
def standard_system_dir #:nodoc:
Win32.win32_system_dir
end
else
def standard_system_dir #:nodoc:
File.expand_path('.rake', '~')
end
end
private :standard_system_dir

View file

@ -1,54 +1,34 @@
module Rake
# Win 32 interface methods for Rake. Windows specific functionality
# will be placed here to collect that knowledge in one spot.
module Win32
# Error indicating a problem in locating the home directory on a
# Win32 system.
class Win32HomeError < RuntimeError
end
class << self
# True if running on a windows system.
def windows?
Config::CONFIG['host_os'] =~ /mswin/
# assume other DOSish systems are extinct.
File::ALT_SEPARATOR == '\\'
end
end
# Run a command line on windows.
def rake_system(*cmd)
if cmd.size == 1
system("call #{cmd}")
else
system(*cmd)
end
end
class << self
# The standard directory containing system wide rake files on
# Win 32 systems. Try the following environment variables (in
# order):
#
# * APPDATA
# * HOME
# * HOMEDRIVE + HOMEPATH
# * USERPROFILE
#
# If the above are not defined, the return nil.
# If the above are not defined, retruns the personal folder.
def win32_system_dir #:nodoc:
win32_shared_path = ENV['APPDATA']
if win32_shared_path.nil? && ENV['HOMEDRIVE'] && ENV['HOMEPATH']
win32_shared_path = ENV['HOMEDRIVE'] + ENV['HOMEPATH']
if !win32_shared_path or win32_shared_path.empty?
win32_shared_path = '~'
end
win32_shared_path ||= ENV['USERPROFILE']
raise Win32HomeError, "Unable to determine home path environment variable." if
win32_shared_path.nil? or win32_shared_path.empty?
normalize(File.join(win32_shared_path, 'Rake'))
File.expand_path('Rake', win32_shared_path)
end
# Normalize a win32 path so that the slashes are all forward slashes.
def normalize(path)
path.gsub(/\\/, '/')
end
end
end if windows?
end
end