lib/syncmanager.js
function(callback) {
    async.waterfall([
      // Make root directory.
      maybeMkdir.bind(null, this.root),

      // Make tmp directory.
      function(done) {
        this.tempdir = path.join(this.root, '.tmp');
        maybeMkdir(this.tempdir, { purge: true }, done);
      }.bind(this),

      // Make directories for each package, package version.
      function(done) {
        var dirs = [];
        for (var package in this.packageToVersions) {
          dirs.push(path.resolve(this.tempdir, package));
          var versions = this.packageToVersions[package];
          for (var version in versions) {
            dirs.push(path.resolve(this.tempdir, package, version));
          }
        }

        async.parallel(dirs.map(function(dir) {
          return maybeMkdir.bind(null, dir);
        }), function(err) {
          return done && done(err);
        });
      }.bind(this)
    ], callback);
  }
function(callback) {
    async.waterfall([
      // Make root directory.
      maybeMkdir.bind(null, this.root),

      // Make tmp directory.
      function(done) {
        this.tempdir = path.join(this.root, '.tmp');
        maybeMkdir(this.tempdir, { purge: true }, done);
      }.bind(this),

      // Make directories for each package, package version.
      function(done) {
        var dirs = [];
        for (var package in this.packageToVersions) {
          dirs.push(path.resolve(this.tempdir, package));
          var versions = this.packageToVersions[package];
          for (var version in versions) {
            dirs.push(path.resolve(this.tempdir, package, version));
          }
        }

        async.parallel(dirs.map(function(dir) {
          return maybeMkdir.bind(null, dir);
        }), function(err) {
          return done && done(err);
        });
      }.bind(this)
    ], callback);
  }
function ( callback ) { async . waterfall ( [ // Make root directory. maybeMkdir . bind ( null , this . root ) , // Make tmp directory. function ( done ) { this . tempdir = path . join ( this . root , '.tmp' ) ; maybeMkdir ( this . tempdir , { purge : true } , done ) ; } . bind ( this ) , // Make directories for each package, package version. function ( done ) { var dirs = [ ] ; for ( var package in this . packageToVersions ) { dirs . push ( path . resolve ( this . tempdir , package ) ) ; var versions = this . packageToVersions [ package ] ; for ( var version in versions ) { dirs . push ( path . resolve ( this . tempdir , package , version ) ) ; } } async . parallel ( dirs . map ( function ( dir ) { return maybeMkdir . bind ( null , dir ) ; } ) , function ( err ) { return done && done ( err ) ; } ) ; } . bind ( this ) ] , callback ) ; }
Make directories for all of the packages and package versions.

@param {Function} callback [err] invoke when done.
Make directories for all of the packages and package versions .