Created
November 13, 2011 16:14
-
-
Save aral/1362273 to your computer and use it in GitHub Desktop.
CoffeeScript to JSON script for OS X
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
coffee --print --compile $1.coffee | sed '1s/^.//' | sed 's/ });/}/' | sed "s/\([^ '\"].*[^ '\"]\):/\"\1\":/" > $1.json |
hmm it seems to have changed a little bit, when I run it on my node:
$ cat foo.coffee
foo: "bar"
$ ./coffee2js foo
$ cat foo.json
function() {
({
"foo": "bar"
}
}).call(this);
coffee --print --bare $1.coffee | sed '1s/&.//' | sed 's/});/}/' | sed 's/({/{/' | sed "s/\([^ '\"].*[^ '\"]\): /\"\1\": /1" > $1.json
Try this. Note the spaces after :
I have URLS as values and this was causing it to put quotes around part of it. The space after : fixed this.
With a bit more simplification and handling the input both from stdin and from a file name parameter:
#!/bin/sh echo \{ cat $1 | \ coffee --print --bare --compile --stdio | \ sed -e '1,2d; $d' | \ sed "s/\([^ '\"].*[^ '\"]\): /\"\1\": /" echo \}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Converts a CoffeeScript data structure into valid JSON (simply removes the additional parentheses that the compiler adds to the start and end of the data structure.)