Version 1
[yaffs-website] / node_modules / fs-extra / lib / ensure / file.js
diff --git a/node_modules/fs-extra/lib/ensure/file.js b/node_modules/fs-extra/lib/ensure/file.js
new file mode 100644 (file)
index 0000000..1c9c2de
--- /dev/null
@@ -0,0 +1,43 @@
+var path = require('path')
+var fs = require('graceful-fs')
+var mkdir = require('../mkdirs')
+
+function createFile (file, callback) {
+  function makeFile () {
+    fs.writeFile(file, '', function (err) {
+      if (err) return callback(err)
+      callback()
+    })
+  }
+
+  fs.exists(file, function (fileExists) {
+    if (fileExists) return callback()
+    var dir = path.dirname(file)
+    fs.exists(dir, function (dirExists) {
+      if (dirExists) return makeFile()
+      mkdir.mkdirs(dir, function (err) {
+        if (err) return callback(err)
+        makeFile()
+      })
+    })
+  })
+}
+
+function createFileSync (file) {
+  if (fs.existsSync(file)) return
+
+  var dir = path.dirname(file)
+  if (!fs.existsSync(dir)) {
+    mkdir.mkdirsSync(dir)
+  }
+
+  fs.writeFileSync(file, '')
+}
+
+module.exports = {
+  createFile: createFile,
+  createFileSync: createFileSync,
+  // alias
+  ensureFile: createFile,
+  ensureFileSync: createFileSync
+}