From ea94d40f4a44bef1801faf147c469220d1259d4c Mon Sep 17 00:00:00 2001 From: jim Date: Thu, 25 Sep 2008 07:01:07 +0000 Subject: 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 --- lib/rake/win32.rb | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 lib/rake/win32.rb (limited to 'lib/rake') 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 -- cgit v1.2.3