src/gitftw.js
function decorator(fn, options, cb) {
  if (typeof options === 'function') {
    cb = options;
    options = null;
  }

  return resolvable(options)
      .then(fn)
      .nodeify(cb);
}
function decorator(fn, options, cb) {
  if (typeof options === 'function') {
    cb = options;
    options = null;
  }

  return resolvable(options)
      .then(fn)
      .nodeify(cb);
}
function decorator ( fn , options , cb ) { if ( typeof options === 'function' ) { cb = options ; options = null ; } return resolvable ( options ) . then ( fn ) . nodeify ( cb ) ; }
Decorates a function resolving its resolvables before calling it,
adding node callback api

@private
@param {Function} fn The function to decorate
@param {Object} [options] The options object passed to the command
@param {callback} [cb] Callback used when in callback mode
@returns {Promise|undefined} A promise when in promise API
Decorates a function resolving its resolvables before calling it adding node callback api