From: gardensofdorwinion@... Date: 2018-07-02T21:27:25+00:00 Subject: [ruby-core:87758] [Ruby trunk Bug#14884] msys2 mingw32 'rake' has unexpected text at top of file Issue #14884 has been updated by GardenTools (Garden Tools). Hi Greg, > Assuming you're running from a cmd/ps shell. Looking at the first few lines of the script, it may also run with a bash shell... The difficulty is running from bash, which finds 'rake' (and becomes confused when it tries to run it). Calling rake.cmd does work but that then loses portability to *nix platforms of the invocation of rake. Chopping out everything above the #! makes the invocation of 'rake' work. That said I see what you mean about the rest of the content of that file though - having the content of bin/rake simply be `#!/usr/bin/ruby require "rake" Rake.application.run` (the same as it is on linux) works for win32 ruby invoked from either cmd or msys2's bash. ---------------------------------------- Bug #14884: msys2 mingw32 'rake' has unexpected text at top of file https://bugs.ruby-lang.org/issues/14884#change-72782 * Author: GardenTools (Garden Tools) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.5.1p57 (2018-03-29 revision 63029) [i386-mingw32] * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN ---------------------------------------- 'rake' from mingw-w64-i686-ruby 2.5.1-1 has what looks like fragments of a batch file and a shell script as the first few lines of what should be just shell that calls ruby. The shebang on line 9 clearly should be the first line. The file indicates it is auto generated, so it seems that some of the generation script has been echoed into this file rather than being run. Ruby 2.5 installed from rubyinstaller.org installs a 'rake' file that suffers the same issue. ~~~ $ cat /mingw32/bin/rake :""||{ ""=> %q<-*- ruby -*- @"%~dp0ruby" -x "%~f0" %* @exit /b %ERRORLEVEL% };{# bindir="${0%/*}" # exec "$bindir/ruby" "-x" "$0" "$@" # >, } #!/usr/bin/env ruby # # This file was generated by RubyGems. # # The application 'rake' is installed as part of a gem, and # this file is here to facilitate running it. # require 'rubygems' version = ">= 0.a" if ARGV.first str = ARGV.first str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then version = $1 ARGV.shift end end if Gem.respond_to?(:activate_bin_path) load Gem.activate_bin_path('rake', 'rake', version) else gem "rake", version load Gem.bin_path("rake", "rake", version) end ~~~ rbinstall.rb around line 440 seems to be related to causing this. -- https://bugs.ruby-lang.org/ Unsubscribe: