summaryrefslogtreecommitdiff
path: root/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/addon/folder.js
diff options
context:
space:
mode:
authorRuben Rodriguez <ruben@gnu.org>2015-11-28 15:24:36 -0600
committerRuben Rodriguez <ruben@gnu.org>2015-11-28 16:27:06 -0600
commite4a3586a14996bbece3b26c9e3b7704ea6af8615 (patch)
tree499bdd16b3a90c30b01e4b47a5882d13b4800f50 /data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/addon/folder.js
parent4dbc2fae927bb02ef243c87938e638af9afee8fa (diff)
LibreJS upgraded to 6.0.10
Diffstat (limited to 'data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/addon/folder.js')
-rw-r--r--data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/addon/folder.js51
1 files changed, 51 insertions, 0 deletions
diff --git a/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/addon/folder.js b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/addon/folder.js
new file mode 100644
index 0000000..4b590c5
--- /dev/null
+++ b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/addon/folder.js
@@ -0,0 +1,51 @@
+'use strict';
+
+const JETPACK_DIR_BASENAME = "jetpack";
+const PATH_TEST = /^[\s\.\\\/]/;
+
+const { Cc, Ci } = require('chrome');
+const file = require('sdk/io/file');
+const jpSelf = require('sdk/self');
+
+let storeFile = Cc['@mozilla.org/file/directory_service;1']
+ .getService(Ci.nsIProperties)
+ .get('ProfD', Ci.nsIFile);
+storeFile.append(JETPACK_DIR_BASENAME);
+storeFile.append(jpSelf.id);
+storeFile.append('addon-folder');
+
+const ADDON_FOLDER_PATH = storeFile.path + '/';
+
+// make the addon-folder container folder
+file.mkpath(ADDON_FOLDER_PATH);
+
+function ioFileWrap(funcName, preMode) {
+ preMode = preMode || "";
+ return function(filepath, mode) {
+ filepath = filepath || '';
+ if (PATH_TEST.test(filepath)) {
+ throw 'The provided filepath "' + filepath + '"" is not valid';
+ }
+ return file[funcName](ADDON_FOLDER_PATH + filepath, preMode + mode);
+ }
+}
+exports.isFile = ioFileWrap('isFile');
+exports.exists = ioFileWrap('exists');
+
+exports.remove = function(filepath) {
+ if (exports.isFile(filepath)) {
+ file.remove(ADDON_FOLDER_PATH + filepath);
+ }
+ else {
+ file.rmdir(ADDON_FOLDER_PATH + filepath);
+ }
+};
+exports.read = ioFileWrap('read');
+exports.write = ioFileWrap('open', 'w');
+exports.mkpath = ioFileWrap('mkpath');
+exports.list = ioFileWrap('list');
+
+exports.destroy = function destroy() {
+ // remove the addon-folder container folder
+ file.rmdir(ADDON_FOLDER_PATH);
+}