summaryrefslogtreecommitdiff
path: root/instruby.rb
diff options
context:
space:
mode:
authorknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-11-22 10:31:03 +0000
committerknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-11-22 10:31:03 +0000
commite7b328c68c8e217424a301a5bfbe018c60ac13ad (patch)
tree7afc15861029c76b7a76630c4ffcb8369093ea71 /instruby.rb
parent0f547d6bd4295a8412030e61b3c056d8950f546b (diff)
* instruby.rb: Install batch files on Windows. [Submitted by usa]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@3080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'instruby.rb')
-rw-r--r--instruby.rb25
1 files changed, 21 insertions, 4 deletions
diff --git a/instruby.rb b/instruby.rb
index a4a445fafc..a883b60e5e 100644
--- a/instruby.rb
+++ b/instruby.rb
@@ -86,13 +86,30 @@ for src in Dir["bin/*"]
File.install src, dest, 0755, true
open(dest, "r+") { |f|
- shebang = f.gets
- body = f.readlines
+ shebang = f.gets.sub(/ruby/, ruby_install_name)
+ body = f.read
f.rewind
-
- f.print shebang.sub(/ruby/, ruby_install_name), *body
+ f.print shebang, body
f.truncate(f.pos)
+ f.close
+
+ if RUBY_PLATFORM =~ /mswin32|mingw|bccwin32/
+ open(dest + ".bat", "w") { |b|
+ b.print <<EOH, shebang, body, <<EOF
+@echo off
+if "%OS%" == "Windows_NT" goto WinNT
+ruby -Sx "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
+goto endofruby
+:WinNT
+ruby -Sx "%~nx0" %*
+goto endofruby
+EOH
+__END__
+:endofruby
+EOF
+ }
+ end
}
end