From 2d4495653c6ae6e8756a9efea68f0bb551e7b45e Mon Sep 17 00:00:00 2001 From: Iakovos Gurulian Date: Sat, 11 Feb 2017 16:12:20 +0000 Subject: [PATCH] Added function to read files, useful for getting command output (it has to be written to a file first) --- content/.frame.js.swp | Bin 0 -> 20480 bytes content/frame.js | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 content/.frame.js.swp diff --git a/content/.frame.js.swp b/content/.frame.js.swp new file mode 100644 index 0000000000000000000000000000000000000000..37dac22471f4756254d50af40427ed312bf95746 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/content/frame.js b/content/frame.js index 49af651..05ffad0 100644 --- a/content/frame.js +++ b/content/frame.js @@ -133,4 +133,39 @@ var CommandRunHandler = function() { this.isPrefix = function(string,prefix) { return (prefix === string.substring(0,prefix.length)); } + + /** + * Reads a file from a directory and returns its contents. + * Useful for reading command output. + * + * The variable dir should have one of the values listed here: + * https://developer.mozilla.org/en-US/Add-ons/Code_snippets/File_I_O + * e.g. "Home" or "TmpD". + * + * WARNING: Do not use on very large files, as your browser may freeze. + */ + this.readFile = function (dir, filename, encoding = "UTF-8") { + Components.utils.import("resource://gre/modules/FileUtils.jsm"); + + var file = FileUtils.getFile(dir, [filename]); + var data = ""; + + var fstream = Components.classes["@mozilla.org/network/file-input-stream;1"]. + createInstance(Components.interfaces.nsIFileInputStream); + var cstream = Components.classes["@mozilla.org/intl/converter-input-stream;1"]. + createInstance(Components.interfaces.nsIConverterInputStream); + fstream.init(file, -1, 0, 0); + cstream.init(fstream, encoding, 0, 0); + + let str = {}; + let read = 0; + do { + read = cstream.readString(0xffffffff, str); + data += str.value; + } while (read != 0); + + cstream.close(); + + return data; + } }