|
@@ -404,6 +404,78 @@ ext.add("open-remote-init-file", function(ev, arg){ |
|
|
window.openUILinkIn(URL, "tab"); |
|
|
window.openUILinkIn(URL, "tab"); |
|
|
}, "Open remote initialization file"); |
|
|
}, "Open remote initialization file"); |
|
|
|
|
|
|
|
|
|
|
|
var updateInitFile = (function(){ |
|
|
|
|
|
const URL = "https://raw.github.com/10sr/dotfiles/master/_keysnail.js"; |
|
|
|
|
|
|
|
|
|
|
|
// content/modules/userscript.js |
|
|
|
|
|
// copy file from aFile |
|
|
|
|
|
function placeFile(aFile, force) { |
|
|
|
|
|
var dstdir = util.getUnicharPref("extensions.keysnail.userscript.location"); |
|
|
|
|
|
if (dstdir === "") { |
|
|
|
|
|
throw util.getLocaleString("failedToInstallFile", [aFile.leafName]) + " :: " + x; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// TODO: fail when dstdir is empty |
|
|
|
|
|
try |
|
|
|
|
|
{ |
|
|
|
|
|
// calc dir from path |
|
|
|
|
|
let destinationDir = util.openFile(dstdir); |
|
|
|
|
|
let destinationFile = util.openFile(dstdir); |
|
|
|
|
|
|
|
|
|
|
|
destinationFile.append(aFile.leafName); |
|
|
|
|
|
|
|
|
|
|
|
if (destinationFile.exists()) |
|
|
|
|
|
{ |
|
|
|
|
|
if (util.hashFile(aFile) === util.hashFile(destinationFile)) |
|
|
|
|
|
{ |
|
|
|
|
|
// no need to install this file |
|
|
|
|
|
return destinationFile; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
let confirmed = force || |
|
|
|
|
|
util.confirm(util.getLocaleString("overWriteConfirmationTitle"), |
|
|
|
|
|
util.getLocaleString("overWriteConfirmation", [destinationFile.path])); |
|
|
|
|
|
|
|
|
|
|
|
if (!confirmed) { |
|
|
|
|
|
throw util.getLocaleString("canceledByUser"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
aFile.moveTo(destinationDir, ""); |
|
|
|
|
|
|
|
|
|
|
|
return destinationFile; |
|
|
|
|
|
} |
|
|
|
|
|
catch (x) |
|
|
|
|
|
{ |
|
|
|
|
|
throw util.getLocaleString("failedToInstallFile", [aFile.leafName]) + " :: " + x; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function updateFile() { |
|
|
|
|
|
util.httpGet(URL, false, function (req) { |
|
|
|
|
|
if (req.status !== 200) { |
|
|
|
|
|
util.message(req.responseText); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
let name = util.getLeafNameFromURL(URL); |
|
|
|
|
|
let file = userscript.writeTextTmp(name, req.responseText); |
|
|
|
|
|
let installed = placeFile(file); |
|
|
|
|
|
util.message(installed.path + " installed"); |
|
|
|
|
|
} catch (x) { |
|
|
|
|
|
util.message("An error occured while installing required scripts :: " + x.message); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return { |
|
|
|
|
|
updateFile: updateFile |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
})(); |
|
|
|
|
|
|
|
|
|
|
|
ext.add("update-init-file", updateInitFile.updateFile, "update init file"); |
|
|
|
|
|
|
|
|
var importExportBookmarks = (function(){ |
|
|
var importExportBookmarks = (function(){ |
|
|
function getOrganizer(){ |
|
|
function getOrganizer(){ |
|
|
// [How to call for Firefox bookmark dialog? - Stack Overflow] |
|
|
// [How to call for Firefox bookmark dialog? - Stack Overflow] |
|
|