1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 'use strict';
- var fs = require('graceful-fs');
- var mkdirp = require('mkdirp');
- var fo = require('../../fileOperations');
- function writeDir(writePath, file, written) {
- var mkdirpOpts = {
- mode: file.stat.mode,
- fs: fs,
- };
- mkdirp(writePath, mkdirpOpts, onMkdirp);
- function onMkdirp(mkdirpErr) {
- if (mkdirpErr) {
- return written(mkdirpErr);
- }
- fs.open(writePath, 'r', onOpen);
- }
- function onOpen(openErr, fd) {
- // If we don't have access, just move along
- if (isInaccessible(openErr)) {
- return fo.closeFd(null, fd, written);
- }
- if (openErr) {
- return fo.closeFd(openErr, fd, written);
- }
- fo.updateMetadata(fd, file, onUpdate);
- }
- function onUpdate(statErr, fd) {
- fo.closeFd(statErr, fd, written);
- }
- }
- function isInaccessible(err) {
- if (!err) {
- return false;
- }
- if (err.code === 'EACCES') {
- return true;
- }
- return false;
- }
- module.exports = writeDir;
|