From a32e431a6d7384b4252b2f7b1051e46b8f02c4e5 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 20 Jun 2014 03:43:22 -0400 Subject: [PATCH] refactor(flop) mv, cp --- lib/server/flop.js | 25 +++++++++++++------------ lib/server/rest.js | 30 +++++++++--------------------- 2 files changed, 22 insertions(+), 33 deletions(-) diff --git a/lib/server/flop.js b/lib/server/flop.js index f8b6732f..cce1e859 100644 --- a/lib/server/flop.js +++ b/lib/server/flop.js @@ -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; diff --git a/lib/server/rest.js b/lib/server/rest.js index 0e336c0e..533e402f 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -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(); }