#!/bin/sh # # Removes trailing commas from array and object declarations (certain browsers, # such as earlier versions of IE, do not parse trailing commas correctly) # # This is a very simple (dumb) system. It does not check to ensure we're not # replacing text inside a string, nor is it 100% certain we're in an array or # object declaration. However, until such an implementation is needed, I'd like # to keep it as simple (and fast) as possible. The below implementation is # suitable for our needs. # # Copyright (C) 2010 Mike Gerwitz # # This file is part of ease.js. # # ease.js is free software: you can redistribute it and/or modify it under the # terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License # for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . # # # read from stdin cat - \ | sed -n ' # copy first line to hold buffer 1h # if not the first line, append to hold buffer 1!H # if last line, process $ { # pull from hold and perform replacement g s/,\(\s*[]}]\)/\1/g # print result p } ' exit 0