refactor(flop) mv, cp

This commit is contained in:
coderaiser 2014-06-20 03:43:22 -04:00
parent 4df9fdaa2d
commit a32e431a6d
2 changed files with 22 additions and 33 deletions

View file

@ -14,8 +14,8 @@
commander = require(DIR + 'commander'),
time = require(DIR + 'time'),
pipe = require(DIR + 'pipe'),
ncp = require(DIR + 'ncp'),
ncp = tryRequire('ncp'),
rimraf = tryRequire('rimraf'),
mkdir = tryRequire('mkdirp') || fs.mkdir;
@ -103,27 +103,27 @@
if (rimraf)
rimraf(path, callback);
else
dir.isDir(path, function(error, isDir) {
if (error)
callback(error);
else if (isDir)
fs.unlink(path, function(error) {
var isDir = error && error.code === 'EISDIR';
if (isDir)
fs.rmdir(path, callback);
else
fs.unlink(path, callback);
callback(error);
});
};
exports.mv = function(from, to, callback) {
dir.isDir(from, function(error, isDir) {
if (error)
callback(error);
else if (isDir && ncp && rimraf)
fs.rename(from, to, function(error) {
var isExDev = error && error.code === 'EXDEV';
if (ncp && rimraf && isExDev)
ncp(from, to, function() {
rimraf(from, callback);
});
else
fs.rename(from, to, callback);
});
callback(error);
});
};
exports.cp = function(from, to, type, callback) {
@ -136,6 +136,7 @@
switch(type) {
default:
console.log(ncp);
(ncp || pipe.create)(from, to, callback);
break;

View file

@ -283,17 +283,7 @@
else
data = files;
copyFiles(files,
function(path, callback) {
flop.delete(path, function(error) {
if (error)
sendError(params, error);
else
callback();
});
},
function(error) {
copyFiles(files, flop.mv, function(error) {
if (error)
sendError(params, error);
else
@ -308,7 +298,7 @@
sendError(params, p.data);
else {
files.namesAll = Util.slice(files.names);
copyFiles(files, null, function(error) {
copyFiles(files, flop.cp, function(error) {
if (error)
sendError(params, error);
else
@ -388,13 +378,11 @@
return ret;
}
function copyFiles(files, callbackProcess, callback) {
function copyFiles(files, processFunc, callback) {
var names = files.names,
isFunc = Util.isFunction(callbackProcess),
processFunc = names ? flop.cp : fs.rename,
copy = function() {
var isLast, name, process,
var isLast, name,
from = files.from,
to = files.to;
@ -408,19 +396,19 @@
names = [];
}
process = Util.exec.ret(callbackProcess, from);
if (isLast)
Util.exec(callback, null);
callback();
else
processFunc(from, to, function(error) {
if (error)
Util.exec(callback, error);
callback(error);
else
Util.exec.if(!isFunc, copy, process);
copy();
});
};
Util.checkArgs(arguments, ['files', 'processFunc', 'callback']);
copy();
}