Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / fs-extra / lib / mkdirs / mkdirs-sync.js
1 var fs = require('graceful-fs')
2 var path = require('path')
3
4 var o777 = parseInt('0777', 8)
5
6 function mkdirsSync (p, opts, made) {
7   if (!opts || typeof opts !== 'object') {
8     opts = { mode: opts }
9   }
10
11   var mode = opts.mode
12   var xfs = opts.fs || fs
13
14   if (mode === undefined) {
15     mode = o777 & (~process.umask())
16   }
17   if (!made) made = null
18
19   p = path.resolve(p)
20
21   try {
22     xfs.mkdirSync(p, mode)
23     made = made || p
24   } catch (err0) {
25     switch (err0.code) {
26       case 'ENOENT' :
27         made = mkdirsSync(path.dirname(p), opts, made)
28         mkdirsSync(p, opts, made)
29         break
30
31       // In the case of any other error, just see if there's a dir
32       // there already.  If so, then hooray!  If not, then something
33       // is borked.
34       default:
35         var stat
36         try {
37           stat = xfs.statSync(p)
38         } catch (err1) {
39           throw err0
40         }
41         if (!stat.isDirectory()) throw err0
42         break
43     }
44   }
45
46   return made
47 }
48
49 module.exports = mkdirsSync