lib/pkgcloud-bootstrapper.js
function createDirs(next) {
      if (!options.files || !options.files.length) {
        return next();
      }

      self.ssh({
        keys: options.keys,
        server: options.server,
        tunnel: options.tunnel,
        remoteUser: options.remoteUser,
        commands: ['mkdir -p ' + options.files.map(function (file) {
          return path.dirname(file.target);
        }).join(' ')]
      }).on('error', function (err) {
        if (!hasErr) {
          hasErr = true;
          next(err);
        }
      }).on('complete', function () {
        if (!hasErr) {
          next();
        }
      });
    }
function createDirs(next) {
      if (!options.files || !options.files.length) {
        return next();
      }

      self.ssh({
        keys: options.keys,
        server: options.server,
        tunnel: options.tunnel,
        remoteUser: options.remoteUser,
        commands: ['mkdir -p ' + options.files.map(function (file) {
          return path.dirname(file.target);
        }).join(' ')]
      }).on('error', function (err) {
        if (!hasErr) {
          hasErr = true;
          next(err);
        }
      }).on('complete', function () {
        if (!hasErr) {
          next();
        }
      });
    }
function createDirs ( next ) { if ( ! options . files || ! options . files . length ) { return next ( ) ; } self . ssh ( { keys : options . keys , server : options . server , tunnel : options . tunnel , remoteUser : options . remoteUser , commands : [ 'mkdir -p ' + options . files . map ( function ( file ) { return path . dirname ( file . target ) ; } ) . join ( ' ' ) ] } ) . on ( 'error' , function ( err ) { if ( ! hasErr ) { hasErr = true ; next ( err ) ; } } ) . on ( 'complete' , function ( ) { if ( ! hasErr ) { next ( ) ; } } ) ; }
1. Create any remote directories for files that will be uploaded.
1 . Create any remote directories for files that will be uploaded .