code: 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);
    }
docs: Make directories for all of the packages and package versions.
  
  @param {Function} callback [err] invoke when done.