diff --git a/.travis.yml b/.travis.yml index df63076..e6c598b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,4 @@ +before_install: npm install -g npm language: node_js node_js: - "0.10" diff --git a/lib/index.js b/lib/index.js index d962af4..de257b5 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,9 +1,10 @@ var path = require('path'); +var fs = require('fs'); var Q = require('q'); var wrench = require('wrench'); var _ = require('lodash'); -var grunt = require('grunt'); +var glob = require('glob'); var pkg = require('../package.json'); var git = require('./git'); @@ -70,23 +71,29 @@ exports.publish = function publish(config, done) { // override defaults with any task options var options = _.extend({}, defaults, config); - if (!grunt.file.isDir(options.base)) { - done(new Error('The "base" option must be an existing directory')); + try { + if (!fs.statSync(options.base).isDirectory()) { + done(new Error('The "base" option must be an existing directory')); + return; + } + } catch (err) { + done(err); return; } - var files = grunt.file.expand({ - filter: 'isFile', + var files = glob.sync(options.src, { cwd: options.base, dot: options.dotfiles - }, options.src); + }).filter(function(file) { + return !fs.statSync(path.join(options.base, file)).isDirectory(); + }); if (!Array.isArray(files) || files.length === 0) { done(new Error('Files must be provided in the "src" property.')); return; } - var only = grunt.file.expand({cwd: options.base}, options.only); + var only = glob.sync(options.only, {cwd: options.base}); function log(message) { if (!options.silent) { diff --git a/package.json b/package.json index 028b5bc..e7db792 100644 --- a/package.json +++ b/package.json @@ -36,10 +36,9 @@ "async": "0.2.9", "wrench": "1.5.1", "lodash": "~2.4.1", - "grunt": "~0.4.5" + "glob": "~4.0.2" }, "devDependencies": { - "glob": "~3.2.9", "mocha": "~1.18.2", "jshint": "~2.4.4", "chai": "~1.9.1"