New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

scp2

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

scp2 - npm Package Compare versions

Comparing version 0.1.4 to 0.2.0

81

lib/client.js

@@ -77,2 +77,3 @@ var fs = require('fs');

self.emit('error', err);
callback(err);
});

@@ -112,3 +113,3 @@ ssh.on('end', function() {

if (attrs) {
attrs.mode = '0755';
attrs.mode = attrs.mode || '0755';
}

@@ -121,2 +122,5 @@

this.sftp(function(err, sftp) {
if (err) {
return callback(err);
}

@@ -165,5 +169,9 @@ // for record log

this.sftp(function(err, sftp) {
if (err) {
return callback(err);
}
var _write = function(handle) {
self.emit('write', options);
var length;
var lastIndex = 0;

@@ -174,3 +182,3 @@ var lastCursor = 0;

var contents = [];
var length = parseInt((content.length - 1) / chunkSize, 10) + 1;
length = parseInt((content.length - 1) / chunkSize, 10) + 1;

@@ -192,3 +200,3 @@ for (var i = 0 ; i < length; i++) {

// content is a file descriptor
var length = parseInt((attrs.size - 1) / chunkSize, 10) + 1;
length = parseInt((attrs.size - 1) / chunkSize, 10) + 1;
var range = new Array(length);

@@ -243,3 +251,3 @@ async.eachSeries(range, function(pos, callback) {

var self = this, _attrs, _fd;
var self = this;

@@ -250,20 +258,20 @@ async.waterfall([

},
function(stats, callback) {
_attrs = stats;
fs.open(src, 'r', callback);
function(stat, callback) {
if (stat.isDirectory()) return callback(new Error('Can not upload a directory'));
// Get the attributes of the source directory
fs.stat(path.dirname(src), function(err, dirStat) {
if(err) return callback(err);
self.mkdir(path.dirname(dest), dirStat, function(err){ callback(err, stat) });
});
},
function(fd, callback) {
_fd = fd;
if (/\/$/.test(dest)) {
self.mkdir(dest, _attrs, callback);
} else {
self.mkdir(path.dirname(dest), _attrs, callback);
}
function(stat, callback) {
fs.open(src, 'r', function(err, fd) { callback(err, stat, fd); });
},
function(callback) {
function(stat, fd, callback) {
self.write({
source: src,
destination: dest,
content: _fd,
attrs: _attrs
content: fd,
attrs: stat
}, callback);

@@ -278,31 +286,16 @@ }

var self = this;
var _sftp, _handle, _buffer;
async.waterfall([
function(callback) {
self.sftp(function(err, sftp) {
_sftp = sftp;
callback(err, sftp);
});
},
function(sftp, callback) {
sftp.open(src, 'r', callback);
},
function(handle, callback) {
_handle = handle;
_sftp.fstat(handle, callback);
},
function(attrs, callback) {
_buffer = new Buffer(attrs.size);
self.sftp(function(err,sftp){
var sftp_readStream = sftp.createReadStream(src);
sftp_readStream.on('error', function(err){
callback(err);
});
sftp_readStream.pipe(fs.createWriteStream(dest))
.on('close',function(){
self.emit('read', src);
_sftp.read(_handle, _buffer, 0, attrs.size, 0, callback);
},
function(bytesRead, buffer, position, callback) {
callback(null, buffer);
},
function(buffer, callback) {
fs.writeFile(dest, buffer, callback);
}
], function(err) {
callback(err);
callback(null);
})
.on('error', function(err){
callback(err);
});
});

@@ -309,0 +302,0 @@ };

@@ -87,2 +87,3 @@ var fs = require('fs');

exports.scp = function(src, dest, callback) {
client.on('error', callback);
var parsed = client.parse(src);

@@ -89,0 +90,0 @@ if (parsed.host && parsed.path) {

{
"name": "scp2",
"version": "0.1.4",
"version": "0.2.0",
"description": "A pure javascript scp program based on ssh2.",

@@ -15,6 +15,6 @@ "author": "Hsiaoming Yang <lepture@me.com>",

"dependencies": {
"ssh2": "~0.2.12",
"glob": "~3.2.6",
"async": "~0.2.9",
"lodash": "~2.0.0"
"ssh2": "~0.3.6",
"glob": "~4.0.6",
"async": "~0.9.0",
"lodash": "~2.4.1"
},

@@ -21,0 +21,0 @@ "repository": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc