From 0a1971cfeed629fd5eedd09caf2f2f3a6d325c23 Mon Sep 17 00:00:00 2001 From: ansuz Date: Fri, 29 Mar 2019 14:40:44 +0100 Subject: [PATCH 1/3] 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) { }); }; - From 51fae45cce554526352005e7ff9dff8a49c26fe6 Mon Sep 17 00:00:00 2001 From: ansuz Date: Fri, 29 Mar 2019 14:57:53 +0100 Subject: [PATCH 2/3] add notes re: logging and cold storage --- expire-channels.js | 2 +- storage/file.js | 4 ++-- storage/tasks.js | 4 ++++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/expire-channels.js b/expire-channels.js index a42a3af58..f7597b323 100644 --- a/expire-channels.js +++ b/expire-channels.js @@ -60,7 +60,7 @@ var handleTask = function (str, path, cb) { } }).nThen(function () { // remove the task file... - Fs.unlink(path, function (err) { + Fs.unlink(path, function (err) { // FIXME deletion if (err) { console.error(err); } cb(); }); diff --git a/storage/file.js b/storage/file.js index 882b1614d..46ae366a6 100644 --- a/storage/file.js +++ b/storage/file.js @@ -68,7 +68,7 @@ var closeChannel = function (env, channelName, cb) { } }; -var clearChannel = function (env, channelId, cb) { +var clearChannel = function (env, channelId, cb) { // FIXME deletion var path = mkPath(env, channelId); getMetadataAtPath(env, path, function (e, metadata) { if (e) { return cb(new Error(e)); } @@ -200,7 +200,7 @@ var checkPath = function (path, callback) { }); }; -var removeChannel = function (env, channelName, cb) { +var removeChannel = function (env, channelName, cb) { // FIXME deletion var filename = mkPath(env, channelName); Fs.unlink(filename, cb); }; diff --git a/storage/tasks.js b/storage/tasks.js index aee820f87..982b7520a 100644 --- a/storage/tasks.js +++ b/storage/tasks.js @@ -67,6 +67,10 @@ var write = function (env, task, cb) { }); }; +// TODO implement a standard API for removing tasks +// currently they are deleted manually in 'expire-channels.js' +// var remove = function (env, id, cb) { }; + Tasks.create = function (config, cb) { var env = { root: config.taskPath || './tasks', From fc43c08baf0dded31d899dbe573fc1190f5624c4 Mon Sep 17 00:00:00 2001 From: ansuz Date: Fri, 29 Mar 2019 16:55:45 +0100 Subject: [PATCH 3/3] un-break all the imports in tasks.js --- storage/tasks.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/storage/tasks.js b/storage/tasks.js index 982b7520a..5a999998c 100644 --- a/storage/tasks.js +++ b/storage/tasks.js @@ -1,4 +1,10 @@ -var Fs = require("fs +var Fs = require("fs"); +var Fse = require("fs-extra"); +var Path = require("path"); +var nacl = require("tweetnacl"); +var nThen = require("nthen"); + +var Tasks = module.exports; var encode = function (time, command, args) { if (typeof(time) !== 'number') { return null; }