diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | instruby.rb | 25 |
2 files changed, 25 insertions, 4 deletions
@@ -1,3 +1,7 @@ +Fri Nov 22 19:20:36 2002 Akinori MUSHA <knu@iDaemons.org> + + * instruby.rb: Install batch files on Windows. [Submitted by usa] + Fri Nov 22 18:31:46 2002 Yukihiro Matsumoto <matz@ruby-lang.org> * eval.c (rb_add_method): node may be NULL. diff --git a/instruby.rb b/instruby.rb index a8cab9a7e1..d6bfa20c72 100644 --- a/instruby.rb +++ b/instruby.rb @@ -108,13 +108,30 @@ for src in Dir["bin/*"] Installer.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 } unless $dryrun end |