diff options
author | jim <jim@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-09-25 07:01:07 +0000 |
---|---|---|
committer | jim <jim@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-09-25 07:01:07 +0000 |
commit | ea94d40f4a44bef1801faf147c469220d1259d4c (patch) | |
tree | c43876d57dc14dffd0550f18f8aea8773943f3f0 /lib/rake | |
parent | c5746c45b2f080f0ede4b69c8e94700b4ac83092 (diff) | |
download | ruby-ea94d40f4a44bef1801faf147c469220d1259d4c.tar.gz |
updated to rake code to rake-0.8.3 source code base
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rake')
-rw-r--r-- | lib/rake/win32.rb | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/lib/rake/win32.rb b/lib/rake/win32.rb new file mode 100644 index 0000000000..eadc585a3f --- /dev/null +++ b/lib/rake/win32.rb @@ -0,0 +1,54 @@ +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/ + end + + # Run a command line on windows. + def rake_system(*cmd) + if cmd.size == 1 + system("call #{cmd}") + else + system(*cmd) + end + end + + # The standard directory containing system wide rake files on + # Win 32 systems. Try the following environment variables (in + # order): + # + # * APPDATA + # * HOMEDRIVE + HOMEPATH + # * USERPROFILE + # + # If the above are not defined, the return nil. + 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'] + 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')) + end + + # Normalize a win32 path so that the slashes are all forward slashes. + def normalize(path) + path.gsub(/\\/, '/') + end + + end + end +end |