From d6caa4cb8f85c6a7e3d804686fbc202c2f6d098c Mon Sep 17 00:00:00 2001 From: isvaljek Date: Sun, 7 Aug 2016 16:01:12 +0200 Subject: [PATCH] glob options now a property of main options for ftp methods (allows for dot:true in glob) --- lib/client.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/client.js b/lib/client.js index ca999b7..3fa062d 100644 --- a/lib/client.js +++ b/lib/client.js @@ -1,6 +1,7 @@ var fs = require('fs'), EventEmitter = require('events').EventEmitter, inherits = require('util').inherits, + extend = require('util')._extend, FTP = require('ftp'), _ = require('lodash'), glob = require('glob'), @@ -60,10 +61,11 @@ Client.prototype.connect = function (callback) { Client.prototype.upload = function (patterns, dest, options, uploadCallback) { options = _.defaults(options || {}, this.options); + var globOptions = options.globOptions; var paths, files, dirs, toDelete = [], ftp = this.ftp; - paths = this._glob(patterns); + paths = this._glob(patterns, globOptions); paths = this._clean(paths, options.baseDir); paths = this._stat(paths); @@ -451,19 +453,21 @@ Client.prototype._checkTimezone = function (cb) { }.bind(this)); } -Client.prototype._glob = function (patterns) { +Client.prototype._glob = function (patterns, globOptions) { var include = [], exclude = []; + options = extend(globOptions, {nonull: false}); + if (!_.isArray(patterns)) { patterns = [patterns]; } patterns.forEach(function (pattern) { if (pattern.indexOf('!') === 0) { - exclude = exclude.concat(glob.sync(pattern.substring(1), {nonull: false}) || []); + exclude = exclude.concat(glob.sync(pattern.substring(1), options) || []); } else { - include = include.concat(glob.sync(pattern, {nonull: false}) || []); + include = include.concat(glob.sync(pattern, options) || []); } });