|
@ -1,7 +1,9 @@ |
|
|
//most (all at this time) of this code was written by Andrew Kelley
|
|
|
// most of this code was written by Andrew Kelley
|
|
|
//licensed under the BSD license: see
|
|
|
// licensed under the BSD license: see
|
|
|
// https://github.com/andrewrk/node-mv/blob/master/package.json
|
|
|
// https://github.com/andrewrk/node-mv/blob/master/package.json
|
|
|
|
|
|
|
|
|
|
|
|
// this needs a cleanup
|
|
|
|
|
|
|
|
|
var fs = require('graceful-fs') |
|
|
var fs = require('graceful-fs') |
|
|
var ncp = require('./_copy').ncp |
|
|
var ncp = require('./_copy').ncp |
|
|
var path = require('path') |
|
|
var path = require('path') |
|
@ -35,6 +37,16 @@ function mv(source, dest, options, callback){ |
|
|
if (clobber) { |
|
|
if (clobber) { |
|
|
fs.rename(source, dest, function(err) { |
|
|
fs.rename(source, dest, function(err) { |
|
|
if (!err) return callback() |
|
|
if (!err) return callback() |
|
|
|
|
|
|
|
|
|
|
|
if (err.code === 'ENOTEMPTY') { |
|
|
|
|
|
rimraf(dest, function(err) { |
|
|
|
|
|
if (err) return callback(err) |
|
|
|
|
|
options.clobber = false // just clobbered it, no need to do it again
|
|
|
|
|
|
mv(source, dest, options, callback) |
|
|
|
|
|
}) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if (err.code !== 'EXDEV') return callback(err) |
|
|
if (err.code !== 'EXDEV') return callback(err) |
|
|
moveFileAcrossDevice(source, dest, clobber, limit, callback) |
|
|
moveFileAcrossDevice(source, dest, clobber, limit, callback) |
|
|
}) |
|
|
}) |
|
|