File: install.js

package info (click to toggle)
bidiui 0.9.7-2.2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 712 kB
  • sloc: javascript: 2,763; perl: 1,048; sh: 156; makefile: 41
file content (113 lines) | stat: -rw-r--r-- 3,745 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
const displayName         = "BiDi Mail UI";
const name                = "bidimailpack";
const jarName             = name + ".jar";
const jarPath             = "chrome/";
const jarLocation         = jarPath + jarName;
const existsInApplication = File.exists(getFolder(getFolder("chrome"), jarName));
#expand const version             = "__VERSION__";
const optionalThe         = "the "; // if package name is an inspecific noun, use "the ", otherwise ""

var contentFlag = CONTENT | PROFILE_CHROME;
var localeFlag  = LOCALE  | PROFILE_CHROME;
var skinFlag    = SKIN    | PROFILE_CHROME;
var retval      = null;
var folder      = getFolder("Current User", "chrome");

const existsInProfile = File.exists(getFolder(folder, jarName));

// If the extension exists in the application folder or it doesn't exist in the profile folder and the user doesn't want it installed to the profile folder
if(existsInApplication || (!existsInProfile && !confirm("Do you want to install " + optionalThe + displayName + " extension into your profile folder?\n(Cancel will install into the application folder)")))
{
    if (existsInApplication)
    {
        alert("This extension is already installed in the application folder, overwriting it there.");
    }
    contentFlag = CONTENT | DELAYED_CHROME;
    localeFlag  = LOCALE  | DELAYED_CHROME;
    skinFlag    = SKIN    | DELAYED_CHROME;
    folder      = getFolder("chrome");
}

initInstall(displayName, name, version);
setPackageFolder(folder);
retval = addFile(name, version, jarLocation, folder, null);

// If adding the JAR file succeeded
if(retval == SUCCESS)
{
    folder = getFolder(folder, jarName);

    registerChrome(contentFlag, folder, "content/" + name + "/");
    registerChrome(localeFlag, folder, "locale/en-US/" + name + "/");
    registerChrome(localeFlag, folder, "locale/he/" + name + "/");
    registerChrome(localeFlag, folder, "locale/ar/" + name + "/");
    registerChrome(localeFlag, folder, "locale/fa/" + name + "/");
    registerChrome(localeFlag, folder, "locale/ur/" + name + "/");
    registerChrome(skinFlag, folder, "skin/classic/" + name + "/");

    // Default Prefs File
    var componentsDir = getFolder("Program", "components");
    var prefDir = getFolder("Program", "defaults/pref");
    retval = addFile( "", "defaults/preferences/bidimailui.js", prefDir, "");
    if (retval == SUCCESS) {
        retval = performInstall();

        if ((retval != SUCCESS) && (retval != 999) && (retval != -239))
        {
            explainInstallRetval(retval,false);
            cancelInstall(retval);
        }
    }
    else
    {
        explainInstallRetval(retval,false);
        cancelInstall(retval);
    }
}
else
{
    explainInstallRetval(retval,false);
    cancelInstall(retval);
}

function explainInstallRetval(retval,considered_success)
{
    var str = "The installation of the " + displayName + " extension ";
    if (retval == SUCCESS)
    {
        str += "succeeded.";
    }
    else 
    {
        if (considered_success)
        {
            str += "succeeded. Please note:\n";
        }
        else 
        {
            str += "failed:\n";
        }

        if(retval == -215)
        {
            str += "One of the files being overwritten is read-only.";
        }
        else if(retval == -235)
        {
            str += "There is insufficient disk space.";
        }
        else if(retval == -239)
        {
            str += "There has been a chrome registration error.";
        }
        else if(retval == 999)
        {
            str += "You must restart the browser for the installation to take effect.";
        }
        else
        {
            str += "Installation returned with code: " + retval;
        }
    }
    alert(str);
}