Socket
Socket
Sign inDemoInstall

backup

Package Overview
Dependencies
0
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.0-9 to 1.0.1

148

index.js

@@ -22,2 +22,4 @@ // Copyright Peter Širka, Web Site Design s.r.o. (www.petersirka.sk)

'use strict';
var fs = require('fs');

@@ -40,5 +42,5 @@ var ph = require('path');

};
};
}
function Walker(addDirectory) {
function Walker() {
this.pending = [];

@@ -48,8 +50,28 @@ this.pendingDirectory = [];

this.file = [];
this.complete = null;
this.addDirectory = addDirectory || false;
this.options = { sort: true, addEmptyDirectory: false };
this.onComplete = null;
this.onFilter = null;
}
Walker.prototype.reset = function() {
var self = this;
self.file = [];
self.directory = [];
self.pendingDirectory = [];
};
Walker.prototype.walk = function(path) {
var self = this;
if (path instanceof Array) {
var length = path.length;
for (var i = 0; i < length; i++)
self.pendingDirectory.push(path[i]);
self.next();
return;
}
fs.readdir(path, function(err, arr) {

@@ -60,8 +82,10 @@

if (arr.length === 0 || self.addDirectory)
self.directory.push(path);
if (arr.length === 0 || self.options.addEmptyDirectory) {
if (self.onFilter === null || self.onFilter(path))
self.directory.push(path);
}
arr.forEach(function(o) {
self.pending.push(ph.join(path, o));
});
var length = arr.length;
for (var i = 0; i < length; i++)
self.pending.push(ph.join(path, arr[i]));

@@ -72,3 +96,3 @@ self.next();

Walker.prototype.stat = function(path) {
Walker.prototype.stat = function(path) {
var self = this;

@@ -83,3 +107,3 @@

self.pendingDirectory.push(path);
else
else if (self.onFilter === null || self.onFilter(path))
self.file.push(path);

@@ -106,7 +130,9 @@

self.file.sort(function(a, b) {
return a.localeCompare(b);
});
if (self.options.sort) {
self.file.sort(function(a, b) {
return a.localeCompare(b);
});
}
self.complete(self.directory, self.file);
self.onComplete(self.directory, self.file);
};

@@ -131,3 +157,3 @@

walker.complete = function(directory, files) {
walker.onComplete = function(directory, files) {
self.directory = directory;

@@ -146,9 +172,13 @@ self.file = files;

var length = self.path.length;
var len = 0;
if (self.directory.length > 0) {
self.directory.forEach(function(o) {
len = self.directory.length;
for (var i = 0; i < len; i++) {
var o = self.directory[i];
if (self.filter(o.substring(length)))
fs.appendFileSync(self.fileName, (o.replace(self.path, '').replace(/\\/g, '/') + '/').padRight(padding) + ':#\n');
});
}

@@ -225,3 +255,2 @@ self.directory = [];

read.value += data.substring(0, index);
self.restoreFile(read.key.replace(/\s/g, ''), read.value.replace(/\s/g, ''));

@@ -236,5 +265,5 @@

Backup.prototype.restore = function(fileName, path, callback, filter) {
Backup.prototype.restore = function(filename, path, callback, filter) {
if (!fs.existsSync(fileName)) {
if (!fs.existsSync(filename)) {
if (callback)

@@ -246,5 +275,6 @@ callback(new Error('Backup file not found.'), path);

var self = this;
self.filter = filter;
self.createDirectory(path, true);
var stream = fs.createReadStream(fileName);
var stream = fs.createReadStream(filename);
var key = '';

@@ -266,2 +296,3 @@ var value = '';

callback(null, path);
stream = null;
});

@@ -293,4 +324,6 @@ }

zlib.gunzip(new Buffer(value, 'base64'), function(err, data) {
var buffer = new Buffer(value, 'base64');
zlib.gunzip(buffer, function(err, data) {
fs.writeFileSync(ph.join(self.path, key), data);
buffer = null;
});

@@ -310,7 +343,8 @@ };

var self = this;
var length = arr.length;
arr.forEach(function(name) {
for (var i = 0; i < length; i++) {
var name = arr[i];
directory += (directory.length > 0 ? '/' : '') + name;
var dir = ph.join(self.path, directory);

@@ -325,3 +359,3 @@

fs.mkdirSync(dir);
});
}
};

@@ -332,3 +366,4 @@

var self = this;
var walker = new Walker(true);
var walker = new Walker();
walker.options.addEmptyDirectory = true;

@@ -341,3 +376,3 @@ if (callback)

walker.complete = function(directory, files) {
walker.onComplete = function(directory, files) {

@@ -350,9 +385,15 @@ self.file = [];

files.forEach(function(o) {
var length = files.length;
for (var i = 0; i < length; i++) {
var o = files[i];
if (filter(o))
self.file.push(o);
});
}
directory.forEach(function(o) {
length = directory.length;
for (var i = 0; i < length; i++) {
var o = files[i];
if (o === path)

@@ -363,3 +404,3 @@ return;

self.directory.push(o);
});
}

@@ -403,3 +444,3 @@ self.directory.sort(function(a, b) {

}
fs.rmdir(directory, function() {

@@ -410,26 +451,2 @@ self.removeDirectory();

/*
@max {Number}
@c {String} :: optional
return {String}
*/
String.prototype.padLeft = function(max, c) {
var self = this.toString();
return Array(Math.max(0, max - self.length + 1)).join(c || ' ') + self;
};
/*
@max {Number}
@c {String} :: optional
return {String}
*/
String.prototype.padRight = function(max, c) {
var self = this.toString();
return self + Array(Math.max(0, max - self.length + 1)).join(c || ' ');
};
String.prototype.trim = function() {
return this.replace(/^[\s]+|[\s]+$/g, '');
};
// ===========================================================================

@@ -439,5 +456,5 @@ // EXPORTS

exports.backup = function(path, fileName, callback, filter) {
exports.backup = function(path, filename, callback, filter) {
var backup = new Backup();
backup.backup(path, fileName, callback, filter);
backup.backup(path, filename, callback, filter);
};

@@ -450,15 +467,8 @@

exports.restore = function(fileName, path, callback, filter, clear) {
exports.restore = function(filename, path, callback, filter) {
var backup = new Backup();
if (!clear) {
backup.restore(fileName, path, callback, filter);
return;
}
backup.clear(path, function() {
backup.restore(fileName, path, callback, filter);
});
backup.restore(filename, path, callback, filter);
};
exports.Walker = Walker;
exports.Backup = Backup;
{
"name": "backup",
"version": "1.0.0-9",
"version": "1.0.1",
"description": "Web Site backup & restore",

@@ -5,0 +5,0 @@ "main": "./index.js",

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc