public
Description: Codetch, a code editing extension to Firefox, Flock, etc.
Homepage: http://codetch.com
Clone URL: git://github.com/zaach/codetch-ext.git
codetch-ext / install.js
100644 97 lines (76 sloc) 3.187 kb
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
/*
Install Codetch
By Zach Carter.
*/
 
const APP_AUTHOR = "Zachary Carter";
const APP_DISPLAY_NAME = "Codetch";
const APP_NAME = "codetch";
const APP_PACKAGE = "/"+APP_AUTHOR+"/"+APP_DISPLAY_NAME;
const APP_VERSION = "0.4.0.20061026";
 
const APP_JAR_FILE = APP_NAME+".jar";
const APP_CONTENT_FOLDER = "content/"+APP_NAME+"/";
const APP_SKIN_FOLDER = "skin/classic/";
const APP_LOCALE = {"en-US","es-AR","de-DE","da-DK"};
//const APP_LOCALE_FOLDER = "locale/" + APP_LOCALE + "/"+APP_NAME+"/";
 
const APP_SUCCESS_MESSAGE = APP_DISPLAY_NAME+" can now be found under the Tools menu, as a toolbar icon or accessed by the hotkey CTRL-F9 \n Please restart the application or open a new window for completion.";
 
 
var profilecf = folder = getFolder("Profile", "chrome");
var chromef = getFolder("chrome");
var codetchf = getFolder("Profile", "codetch");
 
var existsInApplication = File.exists(getFolder(chromef, APP_JAR_FILE));
var existsInProfile = File.exists(getFolder(folder, APP_JAR_FILE));
 
var chromeFlag = PROFILE_CHROME;
 
var err;
initInstall(APP_NAME, APP_PACKAGE, APP_VERSION);
 
// 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 the extension into your profile folder?\n(Cancel will install into the application folder)")))
{
    folder = getFolder("chrome");
    chromeFlag = DELAYED_CHROME;
}
 
setPackageFolder(folder);
err = addFile(APP_AUTHOR, APP_VERSION, "chrome/" + APP_JAR_FILE, folder, null);
 
 
if (err == SUCCESS) {
  var iconfolder = getFolder(getFolder("chrome", "icons"), "default");
  //addFile(name, "ce-main.xpm", iconfolder, "");
err = addFile(APP_NAME, "defaults/codetch-main.ico", iconfolder, "");
}
 
if (err == SUCCESS) addCodetchFiles();
 
if (err == SUCCESS)
{
var jar = getFolder(folder, APP_JAR_FILE);
 
registerChrome(CONTENT | chromeFlag, jar, APP_CONTENT_FOLDER);
for(var i=0;i<APP_LOCALE.length;i++)
registerChrome(LOCALE | chromeFlag, jar, "locale/" + APP_LOCALE[i] + "/"+APP_NAME+"/");
registerChrome(SKIN | chromeFlag, jar, APP_SKIN_FOLDER);
 
err = performInstall();
 
if(err == SUCCESS || error == 999)
   {
alert(APP_NAME + " " + APP_VERSION + " has been succesfully installed.\n"
+APP_SUCCESS_MESSAGE
+"Please restart your browser before continuing.");
}
   else
   {
alert("Install failed. Error code: " + err);
cancelInstall(err);
}
}
else
{
alert("Failed to create " +APP_JAR_FILE +"\n"
+"You probably don't have appropriate permissions \n"
+"for the installation directory. \n");
cancelInstall(err);
}
 
function addCodetchFiles() {
var target = codetchf;
if (!File.exists(target)) {
File.dirCreate(target);
}
 
  err = addFile(APP_NAME, "defaults/codetch-main.ico", target, "");
 
var target = getFolder(target, "configuration");
if (!File.exists(target)) {
File.dirCreate(target);
}
 
err = addDirectory(APP_NAME, "defaults/configuration", target, '');
}