Create a gist now

Instantly share code, notes, and snippets.

CoffeeScript to JSON script for OS X
coffee --print --compile $ | sed '1s/^.//' | sed 's/ });/}/' | sed "s/\([^ '\"].*[^ '\"]\):/\"\1\":/" > $1.json

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.)


hmm it seems to have changed a little bit, when I run it on my node:

$ cat
foo: "bar"

$ ./coffee2js foo

$ cat foo.json
function() {
"foo": "bar"

coffee --print --bare $ | 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:

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