JSPM

  • Created
  • Published
  • Downloads 233867
  • Score
    100M100P100Q161287F
  • License MIT

SS2 with Promises

Package Exports

  • node-ssh

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-ssh) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Node-SSH - SSH2 with Promises

Node-SSH is an extremely lightweight Promise wrapper for ssh2, Period.

Example

var node_ssh, ssh;

node_ssh = require('node-ssh');

ssh = new node_ssh();

ssh.connect({
  host: 'localhost',
  username: 'steel',
  privateKey: '/home/steel/.ssh/id_rsa'
}).then(function() {
  // Source, Target
  ssh.put('/home/steel/Lab/LocalSource', '/home/steel/Lab/RemoteTarget').then(function() {
    console.log("The File thing is done");
  }, function(error) {
    console.log("Something's wrong");
    console.log(error);
  });
  // Array<Shape('Local' => string, 'Remote' => string)>
  ssh.putMulti([{'Local': '/home/steel/Lab/LocalSource', 'Remote': '/home/steel/Lab/RemoteTarget'}]).then(function() {
    console.log("The File thing is done");
  }, function(error) {
    console.log("Something's wrong");
    console.log(error);
  });
  // Source, Target
  ssh.get('/home/steel/Lab/RemoteSource', '/home/steel/Lab/LocalTarget').then(function(Contents) {
    console.log("The File's contents were successfully downloaded");
  }, function(error) {
    console.log("Something's wrong");
    console.log(error);
  });
  // Command
  ssh.execCommand('hh_client --json', {cwd:'/var/www', stream: 'both'}).then(function(result) {
    console.log('STDOUT: ' + result.stdout);
    console.log('STDERR: ' + result.stderr);
  });
});

API

class SSH{
  constructor()
  connect(SSH2Configuration): Promise<void>
  mkdir(Path:String): Promise<string>
  exec(command: String, args: Array<string>, options: Object{cwd: String, stdin: String, stream: enum{'stdout', 'stderr', 'both'}}): Promise
  execCommand(command: String, options: Object{cwd: String, stdin: String, stream: enum{'stdout', 'stderr', 'both'}}): Promise
  put(localPath: String, remotePath: String, ?SFTP: SSH2SFTP, ?Retry:Boolean = true): Promise<void>
  putMulti(Files:array<Object{Local: String, Remote: String}>, ?SFTP: SSH2SFTP): Promise<void>
  get(remoteFile: String, localFile: String, ?SFTP: SSH2SFTP): Promise<?string>
  requestSFTP(): Promise<SSH2SFTP>
  requestShell(): Promise<SSH2Shell>
  end():void
}

License

This project is licensed under the terms of MIT license. See the LICENSE file for more info.