From 0a1971cfeed629fd5eedd09caf2f2f3a6d325c23 Mon Sep 17 00:00:00 2001
From: ansuz <ansuz@transitiontech.ca>
Date: Fri, 29 Mar 2019 14:40:44 +0100
Subject: [PATCH] improved support for nested data directories

---
 storage/file.js  |  5 +++--
 storage/tasks.js | 14 ++++----------
 2 files changed, 7 insertions(+), 12 deletions(-)

diff --git a/storage/file.js b/storage/file.js
index e4a746a67..882b1614d 100644
--- a/storage/file.js
+++ b/storage/file.js
@@ -2,6 +2,7 @@
 /* jshint esversion: 6 */
 /* global Buffer */
 var Fs = require("fs");
+var Fse = require("fs-extra");
 var Path = require("path");
 var nThen = require("nthen");
 const ToPull = require('stream-to-pull-stream');
@@ -189,7 +190,7 @@ var checkPath = function (path, callback) {
             return;
         }
         // 511 -> octal 777
-        Fs.mkdir(Path.dirname(path), 511, function (err) {
+        Fse.mkdirp(Path.dirname(path), 511, function (err) {
             if (err && err.code !== 'EEXIST') {
                 callback(err);
                 return;
@@ -420,7 +421,7 @@ module.exports.create = function (
     };
     // 0x1ff -> 777
     var it;
-    Fs.mkdir(env.root, 0x1ff, function (err) {
+    Fse.mkdirp(env.root, 0x1ff, function (err) {
         if (err && err.code !== 'EEXIST') {
             // TODO: somehow return a nice error
             throw err;
diff --git a/storage/tasks.js b/storage/tasks.js
index 85df70a8d..aee820f87 100644
--- a/storage/tasks.js
+++ b/storage/tasks.js
@@ -1,9 +1,4 @@
-var Fs = require("fs");
-var Path = require("path");
-var nacl = require("tweetnacl");
-var nThen = require("nthen");
-
-var Tasks = module.exports;
+var Fs = require("fs
 
 var encode = function (time, command, args) {
     if (typeof(time) !== 'number') { return null; }
@@ -58,8 +53,8 @@ var write = function (env, task, cb) {
         var dir = id.slice(0, 2);
         var dirpath = Path.join(env.root, dir);
 
-        Fs.mkdir(dirpath, 0x1ff, w(function (err) {
-            if (err && err.code !== 'EEXIST') {
+        Fse.mkdirp(dirpath, 0x1ff, w(function (err) {
+            if (err) {
                 return void cb(err);
             }
         }));
@@ -78,7 +73,7 @@ Tasks.create = function (config, cb) {
     };
 
     // make sure the path exists...
-    Fs.mkdir(env.root, 0x1ff, function (err) {
+    Fse.mkdirp(env.root, 0x1ff, function (err) {
         if (err && err.code !== 'EEXIST') {
             throw err;
         }
@@ -91,4 +86,3 @@ Tasks.create = function (config, cb) {
     });
 };
 
-