jashkenas / coffeescript

Unfancy JavaScript
https://coffeescript.org/
MIT License
16.45k stars 1.98k forks source link

Bug: Remove checkShebangLine multi arguments check #5459

Closed jonathan-rosa closed 5 months ago

jonathan-rosa commented 5 months ago

Input Code

$ ./a.coffee aaa

a.coffee: (--no-header used as proof)

#!/usr/bin/env -S npx coffee --no-header
console.log process.argv

Expected Behavior

$ ./a.coffee aaa
[ 'coffee', '[...]/a.coffee', 'aaa' ]

Current Behavior

$ ./a.coffee aaa
The script to be run begins with a shebang line with more than one
argument. This script will fail on platforms such as Linux which only
allow a single argument.
The shebang line was: '#!/usr/bin/env -S npx coffee --no-header' in file '[...]/a.coffee'
The arguments were: ["-S","npx","coffee","--no-header"]
[ 'coffee', '[...]/a.coffee', 'aaa' ]

Possible Solution

Remove checkShebangLine in coffeescript.coffee as it's no longer necessary.

Context

Linux now allows multiple arguments since coreutils 8.30 (July 1st, 2018), this function can be removed now.

Environment

GeoffreyBooth commented 5 months ago

As of 2023 there are still many Linux distros where it’s unsupported: https://github.com/nodejs/node/pull/49295#issuecomment-1699503964.