#!/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) 2012 Mike Gerwitz # # This file is part of ease.js. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU 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 General Public License for more details. # # You should have received a copy of the GNU 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