Exemplo n.º 1
0
exports["test zip"] = function(assert){
	"use strict";

	// create directory
	io.mkpath("/tmp/zip-test");

	// create first file with content
	var path = "/tmp/zip-test/1";
	var stream = io.open(path, "w");
	if (!stream.closed) {
		stream.write("Content of 1");
		stream.close();
	}

	// create first file with content
	var path2 = "/tmp/zip-test/2";
	var stream2 = io.open(path, "w");
	if (!stream2.closed) {
		stream2.write("Content of 2");
		stream2.close();
	}

	archiver._zip("/tmp/zip-test", "/tmp/zip-test.zip");

	removeFolder("/tmp/zip-test");

	assert.ok(io.exists("/tmp/zip-test.zip"), "zip exists");

	io.remove("/tmp/zip-test.zip");
};
Exemplo n.º 2
0
exports["test downloadList"] = function(assert, done) {
	"use strict";

	var list = [
		data.url("test/yes.js"),
		data.url("test/simple.html"),
		data.url("test/a"),
		data.url("test/b/c")
	];

	io.mkpath("/tmp/archive-download/");

	archiver._downloadList(list, "/tmp/archive-download/", function(manifest, errors){

		// check if all files are there
		assert.ok(io.exists("/tmp/archive-download/resource:/data/test/simple.html/"), "simple.html");
		assert.ok(io.exists("/tmp/archive-download/resource:/data/test/yes.js/"), "yes.js");
		assert.ok(io.exists("/tmp/archive-download/resource:/data/test/a/"), "a");
		assert.ok(io.exists("/tmp/archive-download/resource:/data/test/b/c/"), "c");

		// check if number of files is as expected
		assert.equal(4, io.list("/tmp/archive-download/resource:/data/test/").length, "file count");

		checkContent(assert, "/tmp/archive-download/resource:/data/test/yes.js/__content", "abc", "content of ");
		checkContent(assert, "/tmp/archive-download/resource:/data/test/a/__content", "Content of a");
		checkContent(assert, "/tmp/archive-download/resource:/data/test/b/c/__content", "Content of c");

		removeFolder("/tmp/archive-download/");

		done();
	});

};
 _createDir: function () {
     var adguardDir = sdkFile.join(sdkPathFor(this.PROFILE_DIR), this.ADGUARD_DIR);
     if (sdkFile.exists(adguardDir)) {
         return;
     }
     sdkFile.mkpath(adguardDir);
 },
Exemplo n.º 4
0
const download = (parsedUrl, tab, folder, file) => {
	if (prefs.prefs["enableSubfolder"]) {
		folder = fileIO.join(folder, prefs.prefs["folderNamePattern"].replace(/%domain%/g, parsedUrl.host).replace(/%title%/g, tab.title).replace(illegalCharsRegex, "-").replace(/\s+/g, " "));
		fileIO.mkpath(folder);
	}
	let target = fileIO.join(folder, file.getFullName());
	if (fileIO.exists(target)) {
		let counter = 1;
		while(fileIO.exists(target)) {
			target = fileIO.join(folder, file.getSuffixedName(counter++));
		}
	}
	
	Downloads.getList(Downloads.ALL).then(list => {
		Downloads.createDownload({
			"source": {
				"url": parsedUrl.toString(),
				"isPrivate": privateBrowsing.isPrivate(tab)
			},
			"target": target
		}).then(dl => {
			dl.whenSucceeded().then(() => {
				if (prefs.prefs["notify"]) notifications.notify({
					title: "Image downloaded succesfully!",
					text: dl.target.path,
					iconURL: "file:///" + dl.target.path.replace(/\\/g, "/"),
					data: folder,
					onClick: onNotifyClick
				});
			}, onError);
			list.add(dl);
			dl.start().then(null, onError);
		}, onError);
	}, onError);
};
Exemplo n.º 5
0
function migrateFromOlderVersion() {
	const { pathFor } = require('sdk/system');
	const path = require('sdk/fs/path');
	const file = require('sdk/io/file');

	var oldRedirectsFile = path.join(pathFor('ProfD'), 'Redirector.rjson');
	if (!file.exists(oldRedirectsFile)) {
		return;
	}

	var extensionId = require('sdk/self').id;
	var newFolder = path.join(pathFor('ProfD'), 'browser-extension-data', extensionId);
	file.mkpath(newFolder);
	var newFile = path.join(newFolder, 'storage.js');
	
	if (file.exists(newFile)) {
		return;
	}	


	var textReader = file.open(oldRedirectsFile, 'r');
	var jsonData = JSON.parse(textReader.read());
	textReader.close();
	var Redirect = require('../redirect').Redirect;
	var newData = {redirects:[]};
	for (var r of jsonData.redirects) {
		var redirect = new Redirect(r);
		redirect.updateExampleResult();
		newData.redirects.push(redirect.toObject());
	}

	Cu.import("resource://gre/modules/Services.jsm");

	var enabled = true;
	try {
		enabled = Services.prefs.getBoolPref('extensions.redirector.enabled');
	} catch(e) {}
	newData.disabled = !enabled;

	//Kill old prefs:
	var oldPrefs = ['enabled', 'debugEnabled', 'enableShortcutKey', 'version', 'defaultDir'];
	for (var p of oldPrefs) {
		try {
			Services.prefs.deleteBranch('extensions.redirector.' + p);
		} catch(e) {
		}
	}

	
	var textWriter = file.open(newFile, 'w');
	textWriter.write(JSON.stringify(newData));
	textWriter.close();

	file.remove(oldRedirectsFile);
}
Exemplo n.º 6
0
	var filename = (function() {
		let storeFile = Cc["@mozilla.org/file/directory_service;1"].
			getService(Ci.nsIProperties).
			get("ProfD", Ci.nsIFile);
		storeFile.append("jetpack");
		storeFile.append(self.id);
		storeFile.append("simple-storage");
		file.mkpath(storeFile.path);
		storeFile.append("store.json");
		return storeFile.path;
	})();
exports.getTemplates = function (emit) {
    var profD = system.pathFor('ProfD'),
        ec = file.join(profD, 'executable-creator');
    if (!file.exists(ec)) {
        file.mkpath(ec);
    }
    return file.list(ec).filter(function (files) {
        return files.match(/\.html$/);
    }).map(function (f) {
        return f.replace(/\.html$/, '');
    });
};
exports.deleteTemplate = function (data, emit) {
    var profD = system.pathFor('ProfD'),
        ec = file.join(profD, 'executable-creator'),
        template = file.join(profD, 'executable-creator', data.fileName + '.html');
    if (!file.exists(ec)) {
        file.mkpath(ec);
    }
    if (!file.exists(template)) {
        return {message: 'File file (' + template + ') + does not exist', fileName: data.fileName};
    }
    file.remove(template);
    return {message: 'File removed!', fileName: data.fileName};
};
Exemplo n.º 9
0
let ss = (function() {
	var timeout = null;

	let storeFile = Cc["@mozilla.org/file/directory_service;1"].
		getService(Ci.nsIProperties).
		get("ProfD", Ci.nsIFile);
	storeFile.append("jetpack");
	storeFile.append(self.id);
	storeFile.append("simple-storage");
	file.mkpath(storeFile.path);
	let tempFile = storeFile.clone();
	storeFile.append("store.json");
	tempFile.append("store.json.tmp");

	var really_save = function() {
		let stream = file.open(tempFile.path, "w");
		try {
			stream.writeAsync(JSON.stringify(localStorage), function writeAsync(err) {
				if (err) {
					console.error("Error writing simple storage file: " + tempFile.path);
				} else {
					let tempFileClone = tempFile.clone();
					tempFileClone.moveTo(null, storeFile.leafName);
				}
			}.bind(this));
		}
		catch (err) {
			// writeAsync closes the stream after it's done, so only close on error.
			stream.close();
		}
	};
	this.save = function() {
	    if (timeout !== null) {
			timer.clearTimeout(timeout);
	    }
	    timeout = timer.setTimeout(really_save, 3000);
	};
	let str = "";
	try {
		str = file.read(storeFile.path);
	} catch (e) {
		console.warn("Error loading simple storage file: " + e);
	}
	localStorage = str ? JSON.parse(str) : {};
	return this;
})();
exports.getHardPaths = function (emit) {
    var profD = system.pathFor('ProfD'),
        ex = file.join(profD, 'executables');
    if (!file.exists(ex)) {
        file.mkpath(ex);
    }

    // Todo: handle QuickLaunch for before Win7: C:\Documents and Settings\UserName\Application Data\Microsoft\Internet Explorer\Quick Launch
    return ['Desk', 'Strt', 'Progs', 'AppData', 'Pict', 'ProfD', 'Docs'].reduce(function (obj, name) {
        obj[name] = getHardPath(name);
        return obj;
    }, {
        // Todo: Make OS-specific
        Programs: getHardFile('CurProcD').parent.parent.path, // Is this reliable?
        TaskBar: getHardPath('AppData') + '\\Microsoft\\Internet Explorer\\Quick Launch\\User Pinned\\TaskBar',
        Executable: ex
    });
};
Exemplo n.º 11
0
            koLess.parse(lessCode, function(cssCode)
            {
                var path = require('sdk/system').pathFor('ProfD');
                var ioFile = require('sdk/io/file');
                path = ioFile.join(path, "userstyleCache", id + ".css");

                if ( ! ioFile.exists(ioFile.dirname(path)))
                    ioFile.mkpath(ioFile.dirname(path));

                var file = ioFile.open(path, "w");
                file.write(cssCode);
                file.close();

                this._virtualStyles[id] = {href: ko.uriparse.pathToURI(path), type: type};

                this._loadVirtualStyle(id);
                this._virtualStyleListener();
            }.bind(this));
Exemplo n.º 12
0
 this.get = function(name)
 {
     if (name in storages)
         return storages[name];
     
     storages[name] = {};
     var storage = storages[name];
     
     // Set filename
     let storeFile = Cc["@mozilla.org/file/directory_service;1"].
                     getService(Ci.nsIProperties).
                     get("ProfD", Ci.nsIFile);
     storeFile.append("simple-storage");
     file.mkpath(storeFile.path);
     storeFile.append(name + ".json");
     storage.filename = storeFile.path;
     
     storage.jsonStore = new JsonStore({
         filename: storage.filename,
         writePeriod: prefs.getLong("simple-storage.write.period", 300000),
     });
     
     Object.defineProperties(storages[name], {
         storage: {
             enumerable: true,
             get: function() {
                 if (!storage.jsonStore.isRootInitialized)
                     storage.jsonStore.read();
                 return storage.jsonStore.root;
             },
             set: function(value) {
                 storage.jsonStore.root = value;
             }
         }
     });
     
     return storages[name];
 };
exports.saveTemplate = function (data, emit) {
    // get profile directory
    /*
    var profD = Cc['@mozilla.org/file/directory_service;1'].
               getService(Ci.nsIProperties).get('ProfD', Ci.nsIFile);
    profD.append(data.fileName);
    */
    var ws,
        profD = system.pathFor('ProfD'),
        ec = file.join(profD, 'executable-creator'),
        template = file.join(profD, 'executable-creator', data.fileName + '.html'),
        lastTemplate = data.lastTemplate ? file.join(profD, 'executable-creator', data.lastTemplate + '.html') : null;
    if (!file.exists(ec)) {
        file.mkpath(ec);
    }

    ws = file.open(template, 'w');
    ws.writeAsync(data.content, function () {
        if (lastTemplate) { // Currently not in use
            file.remove(lastTemplate);
        }
        emit('saveTemplateResult', {templateName: data.fileName, message: 'Save successful! in (' + template + ')'});
    });
};