1
// Install script for Enigmime
5
err = initInstall("Enigmime v1.0.1", // name for install UI
6
"/enigmime", // registered name
7
"1.0.1"); // package version
9
logComment("initInstall: " + err);
11
var srDest = 500; // Disk space required for installation (KB)
13
var fProgram = getFolder("Program");
14
logComment("fProgram: " + fProgram);
16
if (!verifyDiskSpace(fProgram, srDest)) {
17
cancelInstall(INSUFFICIENT_DISK_SPACE);
21
var fComponents = getFolder("Components");
22
var fChrome = getFolder("Chrome");
24
// workaround for Mozilla 1.8a3 and newer, failing to register enigmime correctly
26
var delComps = [ "compreg.dat" ]; // Components registry
28
for (var j=0; j<delComps.length; j++) {
29
var delFile = getFolder(fComponents, delComps[j]);
30
if (File.exists(delFile))
34
// addDirectory: blank, archive_dir, install_dir, install_subdir
35
addDirectory("", "chrome", fChrome, "");
36
addDirectory("", "components", fComponents, "");
40
if (err == ACCESS_DENIED) {
41
alert("Unable to write to components directory "+fComponents+".\n You will need to restart the browser with administrator/root privileges to install this software. After installing as root (or administrator), you will need to restart the browser one more time to register the installed software.\n After the second restart, you can go back to running the browser without privileges!");
43
cancelInstall(ACCESS_DENIED);
45
} else if (err != SUCCESS) {
50
registerChrome(PACKAGE | DELAYED_CHROME, getFolder("Chrome","enigmime.jar"), "content/enigmime/");
55
// this function verifies disk space in kilobytes
56
function verifyDiskSpace(dirPath, spaceRequired) {
59
// Get the available disk space on the given path
60
spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
62
// Convert the available disk space into kilobytes
63
spaceAvailable = parseInt(spaceAvailable / 1024);
65
// do the verification
66
if(spaceAvailable < spaceRequired) {
67
logComment("Insufficient disk space: " + dirPath);
68
logComment(" required : " + spaceRequired + " K");
69
logComment(" available: " + spaceAvailable + " K");
78
function getPlatform() {
82
if('platform' in Install) {
83
platformStr = new String(Install.platform);
85
if (!platformStr.search(/^Macintosh/))
87
else if (!platformStr.search(/^Win/))
90
platformNode = 'unix';
93
var fOSMac = getFolder("Mac System");
94
var fOSWin = getFolder("Win System");
96
logComment("fOSMac: " + fOSMac);
97
logComment("fOSWin: " + fOSWin);
100
platformNode = 'mac';
101
else if(fOSWin != null)
102
platformNode = 'win';
104
platformNode = 'unix';