mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-07-18 17:05:17 +00:00
refactor(flop) mv, cp
This commit is contained in:
parent
4df9fdaa2d
commit
a32e431a6d
2 changed files with 22 additions and 33 deletions
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue