diff --git a/bin/cssbeautify b/bin/cssbeautify index 40afd7f..bc28891 100755 --- a/bin/cssbeautify +++ b/bin/cssbeautify @@ -25,7 +25,7 @@ /*jslint sloppy:true node:true */ -var fs, cssbeautify, fname, content, options, style; +var fs, cssbeautify, fname, content, options, style, ofile; fs = require('fs'); cssbeautify = require('cssbeautify'); @@ -47,7 +47,7 @@ if (process.argv.length <= 2) { options = {}; -process.argv.splice(2).forEach(function (entry) { +process.argv.splice(2).forEach(function (entry, index, arr) { if (entry === '-h' || entry === '--help') { showUsage(); @@ -56,14 +56,23 @@ process.argv.splice(2).forEach(function (entry) { console.log('CSS Beautify version 0.3.0'); console.log(); process.exit(0); + } else if (entry === '-o' || entry === '--output') { + // Set the output file + ofile = arr[index+1]; } else if (entry.slice(0, 2) === '--') { console.log('Error: unknown option ' + entry + '.'); process.exit(1); } else if (typeof fname === 'string') { - console.log('Error: more than one input file.'); - process.exit(1); + var prevArgv = arr[index-1]; + if (prevArgv !== '-o' && prevArgv !== '--output') { + console.log('Error: more than one input file.'); + process.exit(1); + } } else { - fname = entry; + var prevArgv = arr[index-1]; + if (prevArgv !== '-o' && prevArgv !== '--output') { + fname = entry; + } } }); @@ -75,9 +84,12 @@ if (typeof fname !== 'string') { try { content = fs.readFileSync(fname, 'utf-8'); style = cssbeautify(content); - console.log(style); + if (typeof ofile !== 'undefined') { + fs.writeFileSync(ofile, style); + } else { + console.log(style); + } } catch (e) { console.log('Error: ' + e.message); process.exit(1); } -