[ruby-core:117372] [Ruby master Bug#20399] Ripper doesn't respect implicit -x
From:
"nobu (Nobuyoshi Nakada) via ruby-core" <ruby-core@...>
Date:
2024-03-29 05:11:23 UTC
List:
ruby-core #117372
Issue #20399 has been updated by nobu (Nobuyoshi Nakada).
Shebang makes sense only in an executable script.
```sh
$ echo $'#!/bin/sh\np :sh' | ruby
ruby: no Ruby script found in input (LoadError)
bash: exit 1
$ ruby -e $'#!/bin/sh\np :sh'
:sh
```
----------------------------------------
Bug #20399: Ripper doesn't respect implicit -x
https://bugs.ruby-lang.org/issues/20399#change-107530
* Author: kddnewton (Kevin Newton)
* Status: Open
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
For the given script:
```ruby
#!/bin/sh
# -*- ruby -*-
exec "${RUBY-ruby}" "-x" "$0" "$@" && [ ] if false
#!ruby
# This needs ruby 2.0, Subversion and Git.
# As a Ruby committer, run this in an SVN repository
# to commit a change.
require 'tempfile'
require 'net/http'
```
I would expect all of the various Ripper APIs (`lex`, `sexp`, `sexp_raw`, `new.parse`, etc.) to start parsing on line 4, because that's what the parser does. Instead, it starts parsing on line 1.
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/