Commit Graph

47 Commits

Author SHA1 Message Date
Danny McClanahan
4e57ca6833 [CS2] Add #! support for executable scripts on Linux. (#3946)
* Add #! support for executable scripts on Linux.

Pass arguments to executable script unchanged if using "#!/usr/bin/env
coffee". (Previously, "./test.coffee -abck" would be turned into "-a -b -c -k",
for example.)

Fixes #1752.

* refactor option parsing

clean up parsing code and in the process fix oustanding bug where coffeescript
modified arguments meant for an executable script

* address comments

* intermediate save

* add note saying where OptionParser is used in coffee command

* add some more work

* fix flatten functions

* refactor tests

* make argument processing less confusing

* add basic test

* remove unused file

* compilation now hangs

* remove unnecessary changes

* add tests!!!

* add/fix some tests

* clarify a test

* fix helpers

* fix opt parsing

* fix infinite loop

* make rule building easier to read

* add tests for flag overlap

* revamp argument parsing again and add more thorough testing

* add tests, comment, clean unused method

* address review comments

* add test for direct invocation of shebang scripts

* move shebang parsing test to separate file and check for browser

* remove TODO

* example backwards compatible warnings

* add correct tests for warning 1

* add tests for warnings

* commit output js libs and update docs

* respond to review comments

also add tests for help text

* respond to review comments

* fix example output

* Rewrite argument parsing documentation to be more concise; add it to sidebar and body; add new output

* Don’t mention deprecated syntax; clean up variable names
2017-07-19 16:25:06 -07:00
Danny McClanahan
31cd782ba7 [CS2] CLI: Test option parsing for current CLI (#4565)
* intermediate save

* add note saying where OptionParser is used in coffee command

* add some more work

* fix flatten functions

* refactor tests

* add basic test

* remove unused file

* compilation now hangs

* remove unnecessary changes

* add tests!!!

* clarify a test
2017-06-15 09:09:02 -07:00
David Chen
f179b20e6e Fixed minor document typos 2015-11-18 08:00:58 +08:00
Nami-Doc
7be996c010 code cleanup 2013-04-28 00:56:44 +02:00
Michael Ficarra
c0dac45fe1 OptionParser and related tests needed a cleanup
The object returned from OptionParser::parse no longer has a `literals`
property. It was pretty arbitrary, anyway.
2012-01-25 19:47:03 -05:00
Michael Ficarra
e2a205ab22 making use of slicing syntax 2011-12-24 06:04:05 -05:00
Michael Ficarra
fc0a169a9a fixes #1910: loop index should be mutable within a loop iteration and immutable between loop iterations 2011-12-21 14:06:34 -05:00
Michael Ficarra
054fe34434 fixes #1754: support filenames starting with - by using -- arg 2011-10-06 14:51:27 -04:00
Michael Ficarra
e686e3f6e9 fixes #1752: passing POSIX-style arguments to scripts through the CLI 2011-10-06 04:11:41 -04:00
breckinloggins
0353b0ddd3 Small typo fixes in several files. Completed some missing documentation in nodes.coffee 2011-07-09 09:58:17 -05:00
Jeremy Ashkenas
d9d50fdf54 Leave out the 'Available Options' bit. 2011-01-15 11:04:50 -05:00
Jeremy Ashkenas
bc4498e018 Issue #910. Adding support for a --nodejs flag to forward arguments. 2010-12-18 09:29:04 -05:00
Jeremy Ashkenas
be17b8215c constructor: prefix is back for classes. punto. 2010-11-14 14:21:55 -05:00
Jeremy Ashkenas
2aedbc2e42 Back to naked constructors. 2010-11-13 15:22:18 -05:00
Jeremy Ashkenas
354708dbc2 Putting 'constructor' back. Improving constructor definitions. 2010-11-13 12:17:09 -05:00
Jeremy Ashkenas
3059db8515 Merge branch 'master' into executable 2010-11-13 11:28:22 -05:00
Jason Davies
498e8124f6 Fix spelling 2010-11-13 10:37:55 +00:00
Jeremy Ashkenas
7fda0cd7d9 first draft of coco's executable class bodies ... cleanups and tests to follow. 2010-11-11 21:48:08 -05:00
Jeremy Ashkenas
f6a8d4c074 round 2, light refactors. 2010-11-04 23:05:04 -04:00
Jeremy Ashkenas
187cda0c39 Using default arguments in one more spot. 2010-11-01 22:07:34 -04:00
satyr
1d4d7e96fa quit using sp?licing ranges 2010-10-13 05:47:45 +09:00
Jeremy Ashkenas
25c8b4b34f Using the Array spaces trick to generate padding and indentation. 2010-09-21 23:17:43 -04:00
Jeremy Ashkenas
1c903450c8 Merging in Stan's patch for a --require flag that allows you to hook into CoffeeScript compiler events for on 'compile', 'success', and 'failure' ... a better way to extend the language or do growlnotify stuff. Issue #590 2010-08-07 23:33:35 -04:00
Stan Angeloff
b1b78dca47 Add command-line compiler hooks. To invoke, pass a file after -r and listen for any of these events: 'compile', 'success' and 'exception'. Example:
coffee -e -r ./snarl 'Hello!'

Contents of 'snarl.coffee' in the working directory:

    http = require 'http'
    CoffeeScript.on 'exception', (err) ->
      client  = http.createClient 9889, 'localhost'
      request = client.request 'GET', '/?d={"action":1,"applicationName":"CoffeeScript","title":' + JSON.stringify(err.message) + ',"description":' + JSON.stringify(err.stack) + ',"priority":3}'
      request.end()
      err.handled = yes

To examine arguments available for each event (for debugging and getting started), use `puts JSON.stringify arguments`.

See http://nodejs.org/api.html#modules-309 and NODE_PATH for more details on how -r looks for files.
2010-08-07 20:24:37 +03:00
Jeremy Ashkenas
9df3e6a538 first step towards requiring #{ ... } interpolation -- removing naked interps from the compiler. 2010-08-07 08:02:16 -04:00
Jeremy Ashkenas
d624310be1 waypoint commit with both # and $ performing interpolation. Issue #544 2010-07-26 23:08:09 -04:00
Jeremy Ashkenas
d1ffffab04 Using an experimental version of new optional-brace object literals. 2010-07-24 23:42:37 -07:00
Jeremy Ashkenas
88847df70b tests are now passing on symbology 2010-07-24 22:23:37 -07:00
Jeremy Ashkenas
492ee57b8f finished basic port to equality of the compiler 2010-07-24 21:36:21 -07:00
Jeremy Ashkenas
4bd657160d fixing bug in option parsing with flagged arguments and cake. 2010-07-11 17:55:22 -04:00
Jeremy Ashkenas
2a7a26482a fixing optparse to behave nicely in the presence of hashbangs -- stop parsing after the first non-option argument, and pass the rest along -- and adding an OptionParser test. 2010-07-11 09:57:42 -04:00
Jeremy Ashkenas
e14f4c5db1 First draft of switching the CoffeeScript Compiler over to camelCase. Pour one on the ground for underscores... 2010-06-12 19:05:13 -04:00
Jeremy Ashkenas
835ecac8db simplifying some unecessary interpolated expressions into interpolated values. 2010-04-11 16:57:53 -04:00
Jeremy Ashkenas
a934cf4947 make JSLint happy about the while condition 2010-03-30 18:19:09 -04:00
Jeremy Ashkenas
d46daa1d7c documenting optparse.coffee and repl.coffee 2010-03-07 13:41:15 -05:00
Jeremy Ashkenas
e977967eb5 implementing the CoffeeScript compiler using interpolation where appropriate. 2010-03-06 13:59:11 -05:00
Jeremy Ashkenas
965034e16e add proper spacing to optparse by default 2010-03-04 22:59:03 -05:00
Jeremy Ashkenas
e02ab76edf converting the remainder of the CoffeeScript compiler (Rewriter, Scope, Optparse) to use classes 2010-02-27 19:46:45 -05:00
Jeremy Ashkenas
17ea48c543 first draft of options for Cakefiles, using optparse.coffee, as well as a cake install task that takes --prefix. Still need to fix the lib/bin scripts 2010-02-25 21:43:42 -05:00
Jeremy Ashkenas
406a18067d allowing merged short flags in optparse.coffee, via normalize_arguments 2010-02-25 19:06:08 -05:00
Jeremy Ashkenas
a23dc6b753 raising an error on unrecognized options 2010-02-25 18:54:08 -05:00
Jeremy Ashkenas
c62f93f930 improving errors for undefined options, and error messages for compile attempts on nonexistent files 2010-02-25 18:36:43 -05:00
Jeremy Ashkenas
66a6568fe7 cleaning and shrinking the option parser 2010-02-25 06:15:58 -05:00
Jeremy Ashkenas
aba8cb1b08 upgrading the optparse library to avoid having to register callbacks for each argument. It just returns a simple options hash. 2010-02-24 17:57:58 -05:00
Jeremy Ashkenas
bea40a7a92 re-enabling the --no-wrap flag, and cleaning up an unused method in command_line 2010-02-21 13:48:38 -05:00
Jeremy Ashkenas
3e518e3cf9 fixing long-flag-with-optional-part in optparse.coffee, and hiding bin/node_coffee --watch until we implement it 2010-02-14 20:50:45 -05:00
Jeremy Ashkenas
e77f4f61aa removing the vendored optparse in favor of a pure-coffeescript optparse library 2010-02-14 15:16:33 -05:00