From 12dde1e1985ede2c0037708cf964f992d8d28d85 Mon Sep 17 00:00:00 2001 From: oncletom Date: Wed, 14 Nov 2012 12:00:12 +0100 Subject: [PATCH] Removed grunt helpers refs #5 --- lib/crx-manifest.js | 22 ++++++++++++++++++ lib/crx.js | 40 +++++++++++++++++++++++++++++++++ package.json | 2 +- tasks/crx.js | 55 +++++---------------------------------------- 4 files changed, 68 insertions(+), 51 deletions(-) create mode 100644 lib/crx-manifest.js create mode 100644 lib/crx.js diff --git a/lib/crx-manifest.js b/lib/crx-manifest.js new file mode 100644 index 0000000..4ce0a59 --- /dev/null +++ b/lib/crx-manifest.js @@ -0,0 +1,22 @@ +"use strict"; + +var path = require('path'); + +exports.init = function(grunt){ + var exports = {}; + + exports.build = function build(ChromeExtension, callback) { + if (!ChromeExtension.manifest.update_url || !ChromeExtension.codebase){ + return callback(); + } + + ChromeExtension.generateUpdateXML(); + var dest = path.dirname(ChromeExtension.dest); + + grunt.file.write(path.join(dest, path.basename(ChromeExtension.manifest.update_url)), ChromeExtension.updateXML); + + callback(); + }; + + return exports; +}; \ No newline at end of file diff --git a/lib/crx.js b/lib/crx.js new file mode 100644 index 0000000..fba2223 --- /dev/null +++ b/lib/crx.js @@ -0,0 +1,40 @@ +"use strict"; + +var exec = require('child_process').exec; +var path = require('path'); + +exports.init = function(grunt){ + var exports = {}; + + exports.build = function build(ChromeExtension, callback) { + grunt.utils.async.series([ + function(done){ + ChromeExtension.load(done); + }, + function(done){ + if (!Array.isArray(ChromeExtension.exclude) || !ChromeExtension.exclude.length){ + return done(); + } + + var files = grunt.file.expand(ChromeExtension.exclude.map(function(pattern){ + return path.join(ChromeExtension.path, '/', pattern); + })); + + exec('rm -rf '+ files.join(' '), done); + }, + function(done){ + ChromeExtension.pack(function(err, data){ + if (err){ + throw new grunt.task.taskError(err); + } + + grunt.file.write(this.dest, data); + + done(); + }); + } + ], callback); + }; + + return exports; +}; \ No newline at end of file diff --git a/package.json b/package.json index 71ab5ff..40fd246 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "grunt-crx", "description": "Package your Chrome Extensions in a bliss.", - "version": "0.1.1", + "version": "0.1.2", "homepage": "https://github.com/oncletom/grunt-crx", "author": { "name": "oncletom", diff --git a/tasks/crx.js b/tasks/crx.js index a7ed4f4..febe94c 100644 --- a/tasks/crx.js +++ b/tasks/crx.js @@ -9,7 +9,6 @@ var ChromeExtension = require('crx'); var path = require('path'); var fs = require('fs'); -var exec = require('child_process').exec; /** * Expand the current multitask config key name @@ -66,6 +65,9 @@ function configure(defaults){ module.exports = function(grunt) { + var crx = require('./../lib/crx').init(grunt); + var crxManifest = require('./../lib/crx-manifest').init(grunt); + // ========================================================================== // TASKS // ========================================================================== @@ -101,11 +103,11 @@ module.exports = function(grunt) { grunt.utils.async.series([ // Building extension function(callback){ - grunt.helper('crx', extension, callback); + crx.build(extension, callback); }, // Building manifest function(callback){ - grunt.helper('crx-manifest', extension, callback); + crxManifest.build(extension, callback); }, // Clearing stuff function(callback){ @@ -115,51 +117,4 @@ module.exports = function(grunt) { } ], /* Baking done! */ done); }); - - // ========================================================================== - // HELPERS - // ========================================================================== - - grunt.registerHelper('crx', function(ChromeExtension, callback) { - grunt.utils.async.series([ - function(done){ - ChromeExtension.load(done); - }, - function(done){ - if (!Array.isArray(ChromeExtension.exclude) || !ChromeExtension.exclude.length){ - return done(); - } - - var files = grunt.file.expand(ChromeExtension.exclude.map(function(pattern){ - return path.join(ChromeExtension.path, '/', pattern); - })); - - exec('rm -rf '+ files.join(' '), done); - }, - function(done){ - ChromeExtension.pack(function(err, data){ - if (err){ - throw new grunt.task.taskError(err); - } - - grunt.file.write(this.dest, data); - - done(); - }); - } - ], callback); - }); - - grunt.registerHelper('crx-manifest', function(ChromeExtension, callback) { - if (!ChromeExtension.manifest.update_url || !ChromeExtension.codebase){ - return callback(); - } - - ChromeExtension.generateUpdateXML(); - var dest = path.dirname(ChromeExtension.dest); - - grunt.file.write(path.join(dest, path.basename(ChromeExtension.manifest.update_url)), ChromeExtension.updateXML); - - callback(); - }); }; \ No newline at end of file